CentOS 7离线软件安装(repotrack + createrepo)
为什么需要离线安装?
- 数据中心隔离区、政企内网、涉密网络通常无法连接互联网,此时无法使用
yum install下载软件,因为 YUM 无法连接官方仓库。 - 通常采用:外网下载 → 制作离线仓库 → 导入内网 → YUM 安装。
- 整个流程只需要维护一份离线仓库,以后安装任何软件都和联网环境完全一致。
- 准备一台与内网机系统版本、CPU 架构一致的外网机器,用于下载 RPM 包及所有依赖,拷贝到内网安装。
整体流程
外网机操作(下载并制作离线仓库)
-
确认系统环境(与内网一致)
cat /etc/centos-release # 查看系统版本 uname -m # 查看 CPU 架构(如 x86_64) -
安装必要工具
sudo yum install -y yum-utils createrepoyum-utils:提供repotrack等下载工具。createrepo:用于生成 YUM 仓库元数据repodata。
-
更换阿里云镜像源以提升下载速度(可选)
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo \ https://mirrors.aliyun.com/repo/Centos-7.repo sudo yum clean all # 清空缓存 sudo yum makecache # 重新生成缓存 -
创建统一下载目录
sudo mkdir -p /kefeng-repo # 所有 RPM 和仓库数据存放于此 -
下载软件及全部依赖
# 下载单个软件 sudo repotrack -p /kefeng-repo sysstat # 下载多个软件 sudo repotrack -p /kefeng-repo sysstat nginx docker # 支持通配符 sudo repotrack -p /kefeng-repo "httpd*"repotrack会自动递归解析依赖,下载所有需要的 RPM,不受当前系统已装软件影响。- 常用参数
-p:指定下载目录。-a:指定 CPU 架构(如x86_64)。--repoid:指定从某个仓库下载。
-
生成仓库元数据(createrepo)
createrepo /kefeng-repo # 全量更新元数据 createrepo --update /kefeng-repo # 增量更新元数据- 下载完 RPM 后,必须生成
repodata/目录,YUM 才能识别此目录为有效仓库。
# 执行完成后目录结构如下 /kefeng-repo ├── *.rpm └── repodata/ - 下载完 RPM 后,必须生成
-
打包仓库并传输至内网
tar -czf kefeng-repo.tar.gz -C /kefeng-repo .- 将生成的
kefeng-repo.tar.gz通过 U 盘、内网共享等方式拷贝到内网服务器。
- 将生成的
内网机操作(配置本地仓库并安装)
-
解压仓库到目标目录
sudo mkdir -p /kefeng-repo # 创建仓库目录 sudo tar -xzf kefeng-repo.tar.gz -C /kefeng-repo # 解压 -
禁用其他仓库(可选)
- 内网环境通常只应使用本地仓库,避免 YUM 尝试访问外网仓库导致超时或冲突。
- 方式一:将
/etc/yum.repos.d/下除local.repo外的.repo文件移走备份 - 方式二:将不需要的仓库配置中
enabled=0禁用。
-
创建本地仓库配置文件
sudo vi /etc/yum.repos.d/local.repo[local] name=Local YUM Repository baseurl=file:///kefeng-repo enabled=1 gpgcheck=0配置项说明
[local]:仓库唯一标识(Repository ID)。name:仓库名称,仅用于显示。baseurl:仓库地址,file://表示本地目录。enabled:是否启用仓库(1=启用,0=禁用)。gpgcheck:是否校验 GPG 签名,本地仓库通常关闭(0)。
-
刷新
YUM缓存并验证yum clean all yum makecache yum repolist # 若输出包含 local 仓库,则表示配置成功。- 若输出中包含
local仓库且数量正确,即配置成功。
- 若输出中包含
-
安装软件(与联网环境一致)
sudo yum install -y sysstat # 或其他已下载的软件- YUM 会自动读取本地仓库元数据,解析依赖并安装,无需手动指定 RPM 文件。
维护与更新
- 需要新增软件时,在外网机:
- 使用
repotrack -p /kefeng-repo 新包名下载。 - 执行
createrepo --update /kefeng-repo更新元数据。 - 重新打包并传输到内网机覆盖。
- 使用
- 内网机只需重新解压覆盖、刷新缓存(
yum makecache)即可安装新软件。
总结
- repotrack:负责下载 RPM 包及完整依赖。
- createrepo:负责生成仓库元数据(
repodata)。 - local.repo:负责告诉 YUM 仓库的位置。
- yum:读取仓库元数据,自动解析依赖并安装软件。

浙公网安备 33010602011771号