yum 下载全量依赖包(离线安装包)完整教程

yum 下载全量依赖包(离线安装包)完整教程

当出现种种原因必须要离线安装时,通常会选择两种方式:源码编译、rpm包安装。源码编译比较耗时且依赖编译环境,使用rpm包安装则更通用更简单。

有能联网的同系统机器?

能联网的同系统机器上,只下载不安装,把软件 + 所有依赖 rpm 包全部下载到本地文件夹;再拷贝到离线服务器用 yum localinstall 批量安装。

方案一:yumdownloader(推荐,最简)

1. 先安装下载工具(联网机器执行)

yum install -y yum-utils

2. 创建存放离线包目录

mkdir -p /tmp/offline_rpm
cd /tmp/offline_rpm

3. 下载软件 + 全部依赖(关键参数 --resolve

# 语法:yumdownloader --resolve 软件名
yumdownloader --resolve nginx
# 示例:下载mysql
yumdownloader --resolve mysql-server
# 下载多个包
yumdownloader --resolve nginx redis java-1.8.0-openjdk-devel
  • --resolve:自动递归下载所有依赖,实现全量包

  • 不加该参数只会下载主程序,缺依赖离线装会报错

4. 拷贝整个文件夹到离线服务器,批量安装

cd /tmp/offline_rpm
yum localinstall -y *.rpm

方案二:yum install --downloadonly(不安装只下载)

适合批量下载、系统自带无需额外工具

1. 指定下载目录下载全量包

# --downloadonly 只下载不安装
# --downloaddir 指定保存目录
yum install -y nginx --downloadonly --downloaddir=/tmp/offline_rpm

补充:如果软件已本地安装,会提示无更新,改用 reinstall

yum reinstall -y nginx --downloadonly --downloaddir=/tmp/offline_rpm

方案 3:下载整组软件包组(如 Development Tools 开发工具组)

# 先查看包组名
yum grouplist
# 下载整个开发工具组所有rpm
yum groupinstall "Development Tools" --downloadonly --downloaddir=/tmp/dev_rpm

离线服务器安装补充(无外网)

方式 A:yum localinstall(自动解决本地 rpm 依赖)

cd 存放rpm目录
yum localinstall -y *.rpm

方式 B:rpm 强制安装(不推荐,容易依赖断裂)

rpm -ivh *.rpm --nodeps

完整离线镜像方案(大批量服务器推荐)

如果需要多次离线部署,直接下载完整 repo 仓库

1. 联网机器安装工具
yum install -y reposync createrepo
2. 同步整个 base 仓库(全量系统包,体积巨大)
mkdir -p /mnt/centos7_repo
reposync -r base -p /mnt/centos7_repo
3. 生成仓库元数据(离线 yum 源必须)
createrepo /mnt/centos7_repo
4. 拷贝到离线机器,修改 /etc/yum.repos.d/*.repo 指向本地 file:// 仓库

常见问题

1. 下载缺少依赖

必须带 --resolve(yumdownloader)或使用 --downloadonly,不要只单独下 rpm。

2. 已安装软件无法下载

使用 yum reinstall xxx --downloadonly

3. 离线安装报缺少依赖

确认下载时带了依赖包,安装时用 yum localinstall 而非单纯 rpm。

4. CentOS 8+/Rocky/AlmaLinux

逻辑完全一致,工具名称不变;dnf 也支持相同参数:dnf download --resolve xxx

没有能联网的同系统机器?

方案一:Windows / 另一台不同 Linux 电脑下载对应 RPM(最常用)

前提:知道离线服务器系统版本(CentOS7/CentOS8/Rocky9 等)、CPU 架构(x86_64/aarch64)

1. 先在离线机器查询系统信息和软件依赖(记下来)

# 系统发行版
cat /etc/redhat-release
# 架构
arch
# 示例输出:CentOS Linux release 7.9.2009 (Core)  x86_64

# 查看软件所有依赖(未安装也能查)
yum deplist nginx
# 或者查询rpm依赖(如果已有rpm包)
rpm -qpR xxx.rpm

2. 在线 Windows/ubuntu 电脑下载 rpm 包

渠道 1:官方镜像站手动下载(推荐)
网站:
操作:
  1. 搜索软件名,下载主 rpm

  2. 点开每个 rpm 详情,查看Requires依赖列表,逐个下载所有依赖 rpm

渠道 2:在线 rpm 搜索网站自动导出全套依赖
网站:
操作:
  1. 选择对应系统版本 + 架构

  2. 搜索包名,打开详情页,页面会列出所有依赖

  3. 逐个下载全部 rpm

3. U 盘拷贝到离线服务器安装

mkdir /tmp/rpm
mv U盘/*.rpm /tmp/rpm
cd /tmp/rpm
yum localinstall -y *.rpm

方案二:下载完整系统 ISO 镜像(一劳永逸,推荐多台离线服务器)

ISO 自带系统基础所有 rpm,可做成本地 yum 源,不用到处找包

步骤 1:在线电脑下载对应系统完整 ISO

  • CentOS7:CentOS-7-x86_64-Everything.iso(不要 Minimal,包不全)

  • CentOS8/Rocky:Everything ISO

步骤 2:拷贝 ISO 到离线服务器,挂载并制作本地 yum 源

# 1. 挂载ISO
mkdir -p /mnt/iso
mount /root/CentOS-7-x86_64-Everything.iso /mnt/iso

# 2. 备份原有外网repo
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/

# 3. 新建本地源repo文件
cat > /etc/yum.repos.d/local-iso.repo <<EOF
[local]
name=Local ISO Repo
baseurl=file:///mnt/iso
gpgcheck=0
enabled=1
EOF

# 4. 清理yum缓存
yum clean all
yum makecache

使用

现在离线服务器可以直接执行 yum install nginx -y,自动从 ISO 里取所有依赖,无需联网、不用单独下载包

缺陷

ISO 只包含系统自带基础软件;如果是第三方软件(nginx、mysql、redis、docker 等)ISO 里没有,还是要去镜像站单独下载。

补充关键注意点

  1. 架构必须匹配:x86_64 包不能装在 arm/aarch64 机器,反之亦然;

  2. 系统版本严格对应:CentOS7 的 rpm 不能给 CentOS8 用;

  3. 第三方软件(epel、docker、mysql)不在系统 ISO 内,必须单独下载 epel 源的 rpm 包;

  4. 离线安装优先用 yum localinstall,会自动排序依赖;rpm -ivh 容易报依赖错误。

RPM命令 2026-07-03

评论区