在日常运维工作中,经常遇到生产服务器处于内网隔离环境,无法连接外网,搭建 CentOS 7 本地 YUM 仓库是最有效的解决方案。本地仓库不依赖外网,适用于各类内网环境,可大幅提升软件安装速度,同时统一软件版本,避免兼容性问题。本文将提供详细的操作步骤,建议收藏备用。
一、本地YUM仓库的主要优势
1.不依赖外网:可在内网隔离或无网络环境中正常安装和更新软件包。
2.安装速度快:从本地直接读取软件包,无需下载,显著提升安装效率。
3.版本统一:通过统一仓库中的软件版本,避免多服务器因版本不一致引发故障。
4.安全可靠:规避外网源劫持或恶意软件风险,更适合生产环境使用。
5.搭建简单:基于CentOS 7系统镜像即可完成,无需额外复杂组件,适合初学者上手。
二、搭建前置准备
1.CentOS7系统镜像:推荐下载CentOS-7-x86_64-Everything-2207-02完整版镜像(内置全量基础软件包);
2.CentOS7服务器:作为本地YUM仓载体,预留10G以上磁盘空间即可,保证root权限;
3.基础目录:提前规划镜像挂载、软件包存储目录,本文统一用/mnt/cdrom(镜像挂载)、/data/local-yum(永久本地仓)。
三、临时光盘YUM仓(方案一)
步骤1:上传并挂载系统镜像
先把下载好的CentOS7镜像上传到服务器/root目录,再创建挂载目录并完成挂载:
# 创建镜像挂载目录mkdir -p /mnt/cdrom # 挂载ISO镜像(替换为你的镜像实际路径) mount /root/CentOS-7-x86_64-Everything-2207-02.iso /mnt/cdrom
# 创建镜像挂载目录
mkdir -p /mnt/cdrom
# 挂载ISO镜像(替换为你的镜像实际路径)
mount /root/CentOS-7-x86_64-Everything-2207-02.iso /mnt/cdrom
验证挂载:执行ls /mnt/cdrom,能看到Packages(软件包目录)、repodata(索引目录),说明挂载成功。
步骤2:备份原有外网YUM源
CentOS7默认自带外网YUM源,会和本地源冲突,先备份原有配置,防止后续报错:
# 创建备份目录mkdir -p /etc/yum.repos.d/bak # 移动所有外网源配置到备份目录mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
# 创建备份目录
mkdir -p /etc/yum.repos.d/bak
# 移动所有外网源配置到备份目录
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
步骤3:创建本地YUM源配置文件
新建本地源配置文件,指定镜像挂载路径,命令直接抄:
# 新建本地YUM配置文件
vim /etc/yum.repos.d/local-yum.repo
按i进入编辑模式,粘贴以下配置,无需修改直接用:
[local-yum]name=CentOS7 Local CD YUM baseurl=file:///mnt/cdromgpgcheck=1enabled=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7##命令解释[local-yum] #仓库唯一标识(ID),yum 通过它区分不同仓库。name=CentOS7 Local CD YUM #仓库描述性名称,用于显示。baseurl=file:///mnt/cdrom #仓库访问路径,指向本地挂载点(如 /mnt/cdrom)。gpgcheck=1 #是否启用 GPG 签名检查(1=启用,保证包来源可靠)。enabled=1 #是否启用该仓库(1=启用)。gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #GPG密钥文件路径,用于验证签名。
[local-yum]
name=CentOS7 Local CD YUM
baseurl=file:///mnt/cdrom
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
##命令解释
[local-yum] #仓库唯一标识(ID),yum 通过它区分不同仓库。
name=CentOS7 Local CD YUM #仓库描述性名称,用于显示。
baseurl=file:///mnt/cdrom #仓库访问路径,指向本地挂载点(如 /mnt/cdrom)。
gpgcheck=1 #是否启用 GPG 签名检查(1=启用,保证包来源可靠)。
enabled=1 #是否启用该仓库(1=启用)。
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #GPG密钥文件路径,用于验证签名。
按Esc,输入:wq保存退出。
Esc
:wq
补充:
配置中指定的密钥文件路径 /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 通常会在系统安装时自动生成。如果该文件不存在,可以从光盘中复制过来或指向本地ISO挂载点:
/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
:
cp /mnt/cdrom/RPM-GPG-KEY-CentOS-7 /etc/pki/rpm-gpg/#密钥文件路径指向本地ISO挂载点gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7
cp /mnt/cdrom/RPM-GPG-KEY-CentOS-7 /etc/pki/rpm-gpg/
#密钥文件路径指向本地ISO挂载点
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7
步骤4:清理缓存并生效
执行命令清理旧缓存、生成新的本地缓存,完成配置生效:
# 清理原有缓存yum clean all# 生成新缓存yum makecache
# 清理原有缓存
yum clean all
# 生成新缓存
yum makecache
临时源提醒:该方案重启服务器后挂载会失效,如需永久生效,直接看方案二!
四、永久本地YUM仓(方案二)
这个方案将镜像内的软件包复制到本地磁盘,配置开机自动挂载,重启服务器也能正常使用,还支持后续自定义添加软件包,适配生产环境长期使用,稳定性拉满。
步骤1:配置镜像开机自动挂载
修改系统挂载配置文件,避免重启后镜像挂载失效:
# 编辑挂载配置文件vi /etc/fstab在文件末尾添加一行内容(替换镜像路径为你的实际路径): /root/CentOS-7-x86_64-Everything-2207-02.iso /mnt/cdrom iso9660 defaults 0 0
# 编辑挂载配置文件
vi /etc/fstab
在文件末尾添加一行内容(替换镜像路径为你的实际路径): /root/CentOS-7-x86_64-Everything-2207-02.iso /mnt/cdrom iso9660 defaults 0 0
保存退出后,执行mount -a校验配置,无报错即配置成功。
步骤2:复制软件包到本地目录
创建本地YUM仓存储目录,将镜像内的软件包完整复制过去,长期留存:
# 创建本地YUM仓目录mkdir -p /data/local-yum# 复制镜像内所有软件包(耐心等待,耗时1-2分钟)cp -r /mnt/cdrom/* /data/local-yum/
# 创建本地YUM仓目录
mkdir -p /data/local-yum
# 复制镜像内所有软件包(耐心等待,耗时1-2分钟)
cp -r /mnt/cdrom/* /data/local-yum/
步骤3:生成本地仓库索引
安装createrepo工具生成仓库索引,让yum识别本地软件包:
# 安装createrepo工具yum install -y createrepo# 生成YUM仓库索引 createrepo /data/local-yum
# 安装createrepo工具
yum install -y createrepo
# 生成YUM仓库索引
createrepo /data/local-yum
执行完成后,/data/local-yum目录下会生成repodata索引文件夹,代表索引创建成功。
步骤4:修改YUM配置并生效
编辑之前的本地源配置文件,将路径改为本地目录路径:
vi /etc/yum.repos.d/local-yum.repo
修改baseurl为本地目录路径,其余内容不变:
baseurl=file:///data/local-yum
保存退出后,再次执行yum clean all && yum makecache更新缓存,永久本地YUM仓搭建完成!
五、一键验证:本地YUM仓是否生效
搭建完成后必须验证,避免后续装包踩坑,用yum安装基础工具测试最直观:
# 测试安装tree工具,也可测试wget、net-tools等yum install -y tree
# 测试安装tree工具,也可测试wget、net-tools等
yum install -y tree
出现Complete!提示,代表本地YUM仓正常运行;若提示找不到包,回头检查挂载路径、配置文件、缓存是否更新即可。
六、常见问题及解决方法
1.镜像挂载失败:检查镜像文件路径是否正确,确认当前用户有root权限,并确保镜像文件未损坏。
2.yum报错无可用源:通常因未备份原外网源或配置文件中的baseurl路径错误导致。请核对路径是否正确,然后重新生成缓存。
3.重启后源失效:原因是未配置开机自动挂载。请按方案二步骤设置/etc/fstab实现永久挂载。
4.gpgcheck校验失败:测试环境可临时将gpgcheck设为0跳过校验;生产环境必须保留校验以确保软件包安全。
长按下图(👇👇)二维码,一键关注“武汉木亘信息技术有限公司”
武汉木亘信息技术有限公司
诚信 共赢 创新 发展