Linux搭建本地YUM源:离线环境也能轻松安装软件

为什么需要本地YUM源


本地YUM源(Local YUM Repository)能让Linux服务器在没有互联网的情况下,通过本地光盘镜像或同步好的离线仓库来安装软件包。

尤其适用于内网服务器、安全要求高的生产环境或带宽紧张的机房。

搭建完成后,yum install 命令会直接走本地源,速度快且不受网络波动影响。


环境准备与系统检查


开始前请确认以下条件:



  • 操作系统:CentOS 7/8、RHEL 7/8、Rocky Linux、AlmaLinux 等基于 RHEL 的发行版(Ubuntu/Debian 不适用 YUM,推荐改用 APT 本地源)。

  • 权限:拥有 root 权限或可以使用 sudo

  • 存储空间:本地源需要存放软件包,至少预留 8GB 以上。

  • 工具检查:运行 rpm -qa | grep createrepo 确认是否已安装 createrepo 工具(用于生成仓库元数据),如果未安装,可先从有网络的机器离线下载 RPM 包。


挂载 ISO 或同步仓库(核心步骤)


方式一:使用系统安装光盘 ISO



  1. 将 ISO 文件上传到服务器,例如 /opt/CentOS-7-x86_64-DVD-2009.iso

  2. 创建挂载点目录:mkdir -p /mnt/cdrom

  3. 挂载 ISO:mount -o loop /opt/CentOS-7-x86_64-DVD-2009.iso /mnt/cdrom



  • 若提示 mount: /mnt/cdrom: WARNING: device write-protected, mounted read-only. 属于正常现象。



  1. 验证挂载内容:ls /mnt/cdrom/ 应看到 Packagesrepodata 等目录。


方式二:通过网络同步官方仓库(用于持续更新)


如果服务器有临时外网权限,可以用 reposync 将仓库同步到本地:


yum install -y yum-utils
mkdir -p /var/local/yum/base
reposync --repoid=base --download_path=/var/local/yum/base

同步完成后生成元数据

createrepo /var/local/yum/base


注意:同步时间取决于网络速度,建议在非高峰时段执行。

创建本地仓库并配置 repo 文件


无论用方式一还是方式二,都需要让 YUM 知道从哪里读取仓库信息。

方法如下:



  1. 备份原有 repo 文件(可选):cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

  2. 新建本地 repo 文件vim /etc/yum.repos.d/local.repo

  3. 写入以下内容(以挂载 ISO 为例):


[local]
name=Local YUM Repository
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0


  • baseurl 指向挂载点或同步后的目录路径。

  • gpgcheck=0 表示跳过 GPG 签名验证,内网环境可简化;若需验证请将 gpgkey 指向 ISO 内的 RPM-GPG-KEY-CentOS-7



  1. 清除原有缓存并重建yum clean all && yum makecache


验证本地 YUM 源是否生效



  • 列出所有可用仓库:yum repolist

  • 若看到 local 仓库且数量不为 0,说明配置成功。

  • 尝试安装一个软件包:yum install -y tree

  • 安装过程应无网络请求,直接从本地读取。

  • 查看具体 package 来源:yum list tree


常见问题与避坑指南



  1. No package availableError: Cannot find a valid baseurl for repo



  • 检查 baseurl 路径是否正确,确认目录下存在 repodata 文件夹。对于 ISO 挂载方式,/mnt/cdrom 下必须包含 repodata。若缺少,说明 ISO 文件并非完整 DVD(如 Minimal ISO 没有软件包集合)。



  1. createrepo: command not found



  • 安装 createrepo:先通过网络或其他方式安装 createrepo 包(例如从另一台机器下载 RPM 后 rpm -ivh createrepo-*.rpm)。



  1. 挂载后 /mnt/cdrom 目录空或只读错误



  • 确认 ISO 文件未损坏,可使用 file /opt/*.iso 查看类型。如果报错 mount: /mnt/cdrom: mount failed: Operation not permitted,尝试用 sudo 或切换到 root 用户。



  1. repo 文件有多个源冲突



  • 备份并删除其他所有 .repo 文件,只保留 local.repo;或设置其他源 enabled=0


总结


本地 YUM 源是 Linux 运维中最常用也最基础的技能之一。

通过 ISO 挂载或 reposync 同步,你可以在离线环境中稳定地安装和更新软件包。

建议先把本文步骤走通,再根据自身网络情况选择挂载或同步方式。

遇到错误时,优先检查路径、权限和 repodata 完整性——多数问题都能通过这三点定位解决。

分享到:
上一篇
WP PHP版本兼容选择:WordPress PHP
下一篇
零基础用Docker部署前后端分离项目全流程
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意