首页/系统/信创系统运维速查/dnf 离线下载与离线安装
命令与包管理65 条

dnf 离线下载与离线安装

内网离线环境标准做法:在联网机器用 dnf download 把 rpm 及依赖拉到本地,拷贝进内网再用 dnf 本地安装。

信创系统运维速查系统更新于 2026-10-13

离线环境怎么装包

内网机器常常不能直接访问软件源,标准做法是「在联网机上取包、拷进内网再装」:联网机用下载插件把目标包及它依赖的所有 rpm 一并拉到本地目录,打包拷进内网后再用包管理器从本地文件安装。这样做的好处是依赖在同一批文件里一次解决,不会出现装到一半提示缺依赖的尴尬。做法本身不复杂,成败的关键在于两端基线一致,以及依赖是否拉全。

基本信息

下载工具包管理器提供的下载子命令,由插件包提供
依赖处理按依赖关系递归下载,可含全部可选依赖
本地安装指向本地 rpm 文件安装,仍可解析依赖
抽查手段对单个 rpm 文件查询其声明的依赖
前提条件联网机与离线机发行版及补丁级别一致
进阶做法批量同步整个仓库到内网,自建内网源

典型使用场景

  • 内网服务器补装组件:把包与依赖一起带进去一次性装好
  • 版本锁定交付:按适配清单下载指定版本,避免现场取到新版本
  • 应急修复:故障机上缺某个工具时快速取包
  • 批量部署:把整套依赖打包做成标准离线包分发给多台机器
  • 自建内网源:把仓库整体同步到内网,长期解决取包问题
  • 基线核对:下载前确认两端版本与架构一致

离线包准备(联网机)

离线包准备(联网机)
dnf install -y 'dnf-command(download)'        # 安装下载插件
mkdir -p /tmp/offline && cd /tmp/offline       # 准备存放目录
dnf download --resolve --alldeps nginx         # 下载包及其全部依赖
ls *.rpm | wc -l                               # 核对文件数量
tar czf nginx-offline.tgz *.rpm                # 打包便于拷贝
rpm -qpR nginx-*.rpm | head                    # 抽查依赖是否已在清单中

内网安装

内网安装
tar xzf nginx-offline.tgz && cd /tmp/offline   # 解包
ls *.rpm | wc -l                                # 与联网机数量核对
dnf install -y ./*.rpm                          # 一次性安装全部文件
dnf list installed | grep nginx                 # 核对安装结果
rpm -qa | grep -c nginx                         # 二次核对

做法对照

做法适用场景注意点
按包下载依赖少量包、单次交付依赖必须拉全,两端基线一致
整体仓库同步长期内网环境需要额外的存储与同步周期
本地文件安装目标机无外网文件顺序不影响解析
依赖抽查交付前自检对单个文件查询声明的依赖
哈希校验安全交付确认文件未在传输中损坏
下载时依赖关系是按联网机的环境解析的:如果联网机与离线机的发行版版本或补丁级别不同,解析出的依赖组合未必适用于离线机,安装时仍可能缺依赖。所以下载前应确认两端基线一致,最稳妥的做法是在与目标机相同版本的机器上准备离线包。
靠一次下载解决长期问题的场景,可以同步整个仓库到内网并自建软件源,让内网机器像正常环境一样取包与更新。这种方式前期投入更大,但省去了每次交付都手工准备依赖的重复劳动。

易错点

  • 下载时漏掉依赖,内网安装提示缺失依赖,来回补包反复往返,交付效率极低
  • 在版本或补丁级别不同的机器上准备离线包,依赖组合不匹配,现场装不上
  • 把文件拷进内网后不核对数量与哈希,传输损坏的文件到安装阶段才报错
  • 长期依赖手工准备离线包而不考虑自建内网源,重复劳动持续累积

数据来源与参考

  • dnf download 插件文档
  • openEuler 离线部署指南
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌