必须依赖本地yum仓库;通过挂载iso、复制rpm、生成repodata、配置.repo文件及可选http服务,实现内网多台linux服务器的软件包统一管理。

如果您在内网环境中无法连接外部网络,但需要为多台Linux服务器统一安装、更新或降级软件包,则必须依赖本地YUM仓库。以下是配置本地YUM仓库的具体步骤:
一、挂载ISO镜像并创建仓库目录
该方法利用CentOS/RHEL官方安装ISO中的Packages目录作为基础软件源,无需联网下载,适用于完全离线环境。需确保ISO文件已复制至服务器本地。
1、将CentOS-7-x86_64-DVD-2009.iso(或其他对应版本ISO)上传至服务器的/root/目录下。
2、创建挂载点目录:mkdir -p /mnt/cdrom。
3、挂载ISO文件:mount -o loop /root/CentOS-7-x86_64-DVD-2009.iso /mnt/cdrom。
4、创建本地仓库存储路径:mkdir -p /var/www/html/localrepo。
5、复制所有RPM包到仓库目录:cp -rp /mnt/cdrom/Packages/*.rpm /var/www/html/localrepo/。
二、生成YUM元数据
YUM客户端依赖repodata目录中的XML元数据文件识别可用包及其依赖关系。使用createrepo命令可基于RPM包自动生成这些文件。
1、安装createrepo工具:yum install -y createrepo(若系统已预装可跳过)。
2、进入仓库目录:cd /var/www/html/localrepo。
3、生成元数据:createrepo -v .。
4、确认生成成功:ls repodata/,应看到filelists.xml.gz、primary.xml.gz等文件。
三、配置YUM仓库文件
通过编写.repo配置文件,使系统识别并优先使用本地仓库路径。该文件需置于/etc/yum.repos.d/目录下,且扩展名必须为.repo。
1、创建仓库配置文件:touch /etc/yum.repos.d/local.repo。
2、编辑该文件,填入以下内容:
[local]
name=Local CentOS Repository
baseurl=file:///var/www/html/localrepo
enabled=1
gpgcheck=0
四、启用HTTP服务共享仓库(可选,用于多机共用)
当需供其他内网主机通过HTTP访问该仓库时,需启动web服务并将仓库路径映射为HTTP可访问路径。此方式避免每台机器重复挂载ISO。
1、安装httpd服务:yum install -y httpd。
2、启动并设为开机自启:systemctl start httpd && systemctl enable httpd。
3、创建软链接使仓库可通过HTTP访问:ln -sf /var/www/html/localrepo /var/www/html/centos7-local。
4、验证服务可用性:curl http://localhost/centos7-local/repodata/,应返回repodata目录内容。
5、其他客户端配置baseurl为:baseurl=http://192.168.10.100/centos7-local(替换为实际服务器IP)。
五、验证与使用本地仓库
完成配置后,需清除缓存并测试仓库是否被正确识别和解析,确保后续安装操作能命中本地RPM包。
1、清除YUM缓存:yum clean all。
2、重建缓存:yum makecache。
3、列出可用仓库:yum repolist,应显示local仓库及其包数量。
4、搜索测试包:yum list available httpd,确认返回结果来自local源。
5、安装测试包:yum install -y httpd,观察是否从file://或http://路径拉取RPM。










