自建yum源和apt源
老版本 linux 系统的安装源都不维护消失了,没有源安装一些常用软件比较麻烦,可以使用 iso 镜像文件搭建简易安装源,安装常用软件包
参考文章:yum源的三种搭建方式,CentOS 使用iso镜像安装本地 yum 源 ,使用iso镜像设置Ubuntu系统本地apt源,Debian如何配置局域网APT软件仓库
yum 源:网络搭建
这里以 Centos7 为例
1)服务器上需要安装有 apache 或 nginx 等服务器,并可以正常访问,这里使用 nginx 为例,服务器 ip 为 192.168.0.211 网站目录为 /var/www/html/
2)上传 CentOS-7-x86_64-DVD-2009.iso 镜像到服务器上,然后在网站目录下新建一个文件夹,文件夹名随意。
|
|
3)将 iso 镜像挂载到创建的目录下 /var/www/html/repo
|
|
挂载完成后,repo 目录下会多出一些文件
4)启动一台 Centos7 服务器,来到 /etc/yum.repos.d 目录下,删除这个目录下的所有文件,创建一个文件 http.repo,写入以下内容。
|
|
至于删除的那些文件的作用和内容,有兴趣可以自行百度或查看上述参考文章。
验证 yum 源是否成功:yum repolist
apt 源:网络搭建
这里以搭建 debian9 为例。
服务器上需要安装有 apache 或 nginx 等服务器,并可以正常访问,这里使用 nginx 为例,服务器 ip 为 192.168.0.211 网站目录为 /var/www/html/
1)创建目录 debian9
|
|
2)上传 iso 镜像文件,并挂载至 debian9 目录
|
|
3)查看 /var/www/html/debian9 目录,可以看到相关文件
4)启动一台 debian9 主机,编辑 /etc/apt/sources.list 文件,注释掉其他源,写入网络源
|
|
成功,这样就可以安装软件了,仅限 iso 镜像中自带的软件包
5)例如没有 vim,就可以从自己搭建的网络 apt 源进行安装,当然,仅限 iso 镜像中自带的软件包
apt 源:本地搭建
如果只是本地主机使用,没有其他网络主机使用,可以直接将 iso 镜像挂载到本地目录,不使用http服务器。
这里以 Debian11 服务器为例子
1)创建目录ubuntu,名字随意
|
|
2)上传 iso 镜像文件,并挂载至 ubuntu 目录
|
|
3)修改本地主机的/etc/apt/sources.list 文件,注释掉其他源
|
|
4)运行 apt update命令
服务器重启后挂载失效
因为上面只是临时挂载,重启后就失效了,可以再用 mount 命令挂载以便。如果你熟悉 Linux,可以将其写入配置文件,和挂载硬盘一样。
图省事的话可以将挂载命令在开机时自动执行,有两种方式实现:
rc.local:先看看有没有这个配置文件,文件在 /etc/rc.local,debian 默认没有。将 mount -o loop debian-9.13.0-amd64-DVD-1.iso /var/www/html/debian9 写入
crontab:crontab -e 将 @reboot mount -o loop debian-9.13.0-amd64-DVD-1.iso /var/www/html/debian9 命令写入。
apt 源的配置文件说明
参考: https://www.cnblogs.com/beanmoon/p/3387652.html
source.list 文件中每一行配置可以分为四个部分:deb http://mirrors.163.com/debian/ stretch main contrib
- deb 或者 deb-src:前者代表软件的位置,后者代表软件的源代码的位置
- http://mirrors.163.com/debian/ :ftp 镜像的 url
- stretch:debian 系统的版本号。stretch-updates 是软件包状态,代表更新
- main contrib:限定词
其中,前三个部分好理解,都是固定的样式,主要是第四部分的限定词,要理解清楚含义。
常见的三个限定词有:main、contrib、non-free
- main :Debian 里最基本及主要且符合自由软件规范的软件 ( packages )。
- contrib :这里头软件虽然可以在 Debian 里头运作,即使本身属于自由软件但多半却是相依于非自由 ( non-free ) 软件。
- non-free :不属于自由软件范畴的软件。
一般软件的镜像源都包含这三个,比如腾讯的 debian10 镜像源配置为:deb https://mirrors.cloud.tencent.com/debian/ buster main contrib non-free
通过浏览器找到地址,打开对应为的地址 /dists/buster/ 可以看到 main、contrib、non-free 这三个文件夹
其次,我们在自己搭建的镜像源目录里也可以找到对应的目录,这里只有 main、contrib,没有 non-free
所以,在使用我们自己搭建的 debian9 镜像源时,配置为:deb [trusted=yes] http://192.168.0.211/debian9/ stretch main contrib 后面不要加 non-free。
不同的 Linux 系统源配置有些不同,比如 Ubuntu:deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
查找软件包是否在 iso 镜像中
两种方法
- 方法一:通过 pool 目录
|
|
- 方法二:通过 Packages.gz
|
|
目录结构
结果
使用 rsync 同步镜像源
- rsync 是一个高效的远程文件同步工具,支持增量同步(仅传输差异部分),常用于镜像大型仓库。
- 手动同步:通过
rsync命令直接同步远程仓库到本地,但需自行处理元数据更新和仓库维护。 - 适用场景:
- 需要灵活控制同步内容(如过滤特定目录或软件包)。
- 官方镜像站提供
rsync访问支持(如 Debian、Ubuntu、CentOS 官方镜像)。
1)准备一个服务器
- 安装rsync
|
|
- 创建本地仓库目录
|
|
- 启动 http 服务器(如 Nginx)
将两个本地仓库目录分别设置为设置为 http 网站的根目录
2)同步仓库
- apt 仓库
|
|
参数解析:
-avzH:归档模式、保留属性、压缩传输、保留硬链接。--delete:删除本地多余文件(保持与远程严格一致)。--progress:显示同步进度。--exclude:排除临时文件或索引(后续需手动生成)。
注意:这里的镜像源地址必须支持 rsync 访问
生成 apt 仓库元数据
|
|
- yum 仓库
|
|
生成 yum 仓库元数据
|
|














