需求说明
制作内网linux系统yum源仓库,比较简单的方式就是添加系统镜像,此种yum配置方式可参考文章 https://blog.csdn.net/d1240673769/article/details/108477661
如果无法提供系统镜像,那该如何创建内网的yum源仓库呢?本文提供另一种方式(此种方式需要在能访问公网的环境中配置,配置完成后可转移至内网环境中)
环境准备
本文以 centos7.7 x86 系统为例,为centos7.7系统创建内部yum源仓库。
准备一台可访问公网的centos7.7服务器,系统中yum源默认配置信息如下:
查看当前系统yum源:
安装制作yum源仓库需要用到的命令包:
yum -y install yum-utils
yum -y install reposync
yum -y install createrepo
制作yum源
1. 从公网下载源
创建源文件存储的位置,如 /mnt/mirror/x86_64 ,将从公网下载的源文件存在服务器 /mnt/mirror/x86_64 目录下(源文件占用空间较大,建议留足空间,约20G左右)
创建存储目录
mkdir -p /mnt/mirror/x86_64
从公网下载源,通过 reposync 命令
reposync -p /mnt/mirror/x86_64/
# 下载过程用时较长,建议挂起运行,nohup reposync -p /mnt/mirror/x86_64/ &
上述命令会默认下载 base 、extras 和 updates 三个目录中的软件包,也可通过下面命令只下载base中的安装包:
# 下载base目录到本地
reposync -r base -p /mnt/mirror/x86_64/
下载完成后,会在/mnt/mirror/x86_64/ 目录中生成三个目录:base、extras和updates,如下图:
每个目录中都有一个 Packages的目录,该目录中为下载的rpm软件包,如下图:
2. 创建索引
通过 createrepo 命令创建yum源索引
createrepo -po /mnt/mirror/x86_64/base/ /mnt/mirror/x86_64/base/
createrepo -po /mnt/mirror/x86_64/extras/ /mnt/mirror/x86_64/extras/
createrepo -po /mnt/mirror/x86_64/updates/ /mnt/mirror/x86_64/updates/
执行如下图:
执行完成后,会在每一个目录下生成一个 repodata 目录,如下图:
3. nginx发布自制yum源
在服务器nginx配置中,增加server配置,如下图:
server {listen 9999;root /mnt/mirror/;location / { autoindex on; autoindex_exact_size off; autoindex_localtime on; charset utf-8,gbk; index index.html; }}
重启nginx后,访问服务器 9999 端口 /x86_64/ 目录,可访问到yum源软件安装包,如下图:
4. 创建其他服务器访问内部的yum源
创建 centos-local.repo ,内容如下:
[base]
name=CentOS-Base
baseurl=http://10.7.2.230:9999/x86_64/base/
gpgcheck=0
enabled=1# 可以只配置base部分,如需其他部分,也可以加上
[extras]
name=CentOS-Extras
baseurl=http://10.7.2.230:9999/x86_64/extras/
gpgcheck=0
enabled=1#[updates]
#name=CentOS-Updates
#baseurl=http://10.7.2.230:9999/x86_64/updates/
#gpgcheck=0
#enabled=1
5. 验证
将上述配置上传到235服务器上,如下图:
清除yum源配置,并重新加载缓存:
配置完成,此时可通过yum安装内部源中的软件包了。