必须挂载ISO或自建RPM目录并生成repodata,配置.repo文件指向file://路径,再执行yum clean all && yum makecache生效;多机共享时可配HTTP服务。

在没有网络连接的 Linux 系统中,配置本地离线软件源仓库是安装和管理软件包的基础。核心在于让 yum(RHEL/CentOS/Rocky)或 apt(Debian/Ubuntu)能从本地路径读取软件包及依赖元数据,不依赖外部服务器。
挂载 ISO 镜像直接用作 YUM 源
这是最常用、最快捷的方式,适用于有官方安装镜像(如 CentOS-7-x86_64-DVD.iso 或 Rocky-9.4-x86_64-dvd1.iso)的场景。镜像内已自带 Packages/ 目录和完整的 repodata/ 元数据,无需额外生成。
- 上传 ISO 文件到服务器(例如放在
/root/下),创建挂载点:mkdir -p /mnt/cdrom - 挂载镜像:
mount -o loop /root/CentOS-7-x86_64-DVD-2009.iso /mnt/cdrom - 确认挂载成功:
ls /mnt/cdrom/Packages/*.rpm | head -3应显示 RPM 包;ls /mnt/cdrom/repodata/应存在primary.xml.gz等文件 - 备份原有源配置:
mkdir /etc/yum.repos.d/backup && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ - 新建
/etc/yum.repos.d/local.repo,内容为:
name=Local ISO Repository
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
自建 RPM 目录并生成 repodata
当你收集了散装 RPM 包(比如从多台机器导出、或仅需少量特定软件),ISO 不适用时,必须用 createrepo 工具生成元数据,否则 yum 无法解析依赖关系。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 先安装工具(需在已有网络或已配好源的机器上执行):
yum install -y createrepo - 将所有 .rpm 文件放入统一目录,例如:
mkdir -p /opt/myrepo && cp *.rpm /opt/myrepo/ - 进入该目录并生成元数据:
cd /opt/myrepo && createrepo -v .—— 执行后会生成repodata/子目录 - 配置 repo 文件,
baseurl改为:file:///opt/myrepo
通过 HTTP 共享本地仓库(多机内网部署)
若有多台离线服务器,可将本地仓库发布为 HTTP 服务,避免每台都挂载 ISO 或复制 RPM,提升维护效率。
- 安装并启动 Web 服务:
yum install -y httpd && systemctl enable --now httpd - 把 RPM 目录(如
/opt/myrepo)软链接到 Web 根目录:ln -sf /opt/myrepo /var/www/html/centos-local - 客户端配置
baseurl改为:http://192.168.10.100/centos-local(替换为实际服务器 IP) - 验证可用性:
curl http://192.168.10.100/centos-local/repodata/应返回 XML 文件列表
验证与使用
无论哪种方式,完成配置后必须刷新缓存才能生效。
- 清除旧缓存:
yum clean all - 重建元数据索引:
yum makecache - 列出当前启用的仓库:
yum repolist,确认local显示在列表中且状态为 enabled - 测试安装:
yum install -y tree或yum list available | grep nginx

















