自建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/

images/image-20240916131036790.png

2)上传 CentOS-7-x86_64-DVD-2009.iso 镜像到服务器上,然后在网站目录下新建一个文件夹,文件夹名随意。

1
mkdir /var/www/html/repo

3)将 iso 镜像挂载到创建的目录下 /var/www/html/repo

1
mount CentOS-7-x86_64-DVD-2009.iso /var/www/html/repo

挂载完成后,repo 目录下会多出一些文件

images/image-20240916131606437.png

4)启动一台 Centos7 服务器,来到 /etc/yum.repos.d 目录下,删除这个目录下的所有文件,创建一个文件 http.repo,写入以下内容。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#yum仓库名,可自定义
[http]
#yum仓库的描述信息
name=repo_for_http
#yum源的网络访问地址。url链接不要填错
baseurl=http://192.168.0.211/repo/
#启用仓库
enabled=1
# 不进行红帽标签检查
gpgcheck=0

images/image-20240916132823276.png

至于删除的那些文件的作用和内容,有兴趣可以自行百度或查看上述参考文章。

验证 yum 源是否成功:yum repolist

images/image-20240916133103189.png

apt 源:网络搭建

这里以搭建 debian9 为例。

服务器上需要安装有 apache 或 nginx 等服务器,并可以正常访问,这里使用 nginx 为例,服务器 ip 为 192.168.0.211 网站目录为 /var/www/html/

1)创建目录 debian9

1
mkdir /var/www/html/debian9

2)上传 iso 镜像文件,并挂载至 debian9 目录

1
mount -o loop debian-9.13.0-amd64-DVD-1.iso /var/www/html/debian9

3)查看 /var/www/html/debian9 目录,可以看到相关文件

images/image-20240916180431296.png

4)启动一台 debian9 主机,编辑 /etc/apt/sources.list 文件,注释掉其他源,写入网络源

1
2
3
4
5
6
#注释掉其他源
deb [trusted=yes] http://192.168.0.211/debian9/ stretch main contrib
# [trusted=yes]代表直接信任
# http://192.168.0.211/debian9/ :软件仓库URL
# stretch:版本代号
# main contrib:光盘上软件的组织结构

成功,这样就可以安装软件了,仅限 iso 镜像中自带的软件包

images/image-20240916182651799.png

5)例如没有 vim,就可以从自己搭建的网络 apt 源进行安装,当然,仅限 iso 镜像中自带的软件包

images/image-20240916182943230.png

服务器重启后挂载失效

因为上面只是临时挂载,重启后就失效了,可以再用 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 这三个文件夹

images/image-20240921093829929.png

其次,我们在自己搭建的镜像源目录里也可以找到对应的目录,这里只有 main、contrib,没有 non-free

images/image-20240921094058946.png

所以,在使用我们自己搭建的 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

images/image-20240921095202321.png

0%