首页/系统/信创系统运维速查/dnf 安装指定版本与本地包
命令与包管理65 条

dnf 安装指定版本与本地包

安装特定版本、降级到旧版、从本地 rpm 文件装:install 加版本号、downgrade 降级、install ./pkg.rpm 装本地包三种常见路径。

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

装指定版本与本地包

实际运维中很少只是 dnf install 最新版:更常见的是锁定某个已验证版本、把新版本降回旧版本,或者在一台没有外网的机器上装一个本地 rpm 文件。这三件事对应三条路径——在包名后接版本号锁定版本、用 downgrade 回退、用 install 直接指向 rpm 文件路径让 dnf 从源里补齐依赖。信创环境的软件版本适配往往很挑剔,掌握这三招能省下大量沟通成本。

基本信息

锁定版本dnf install 包名-版本号,可配合通配符
装本地包dnf install ./包文件.rpm,从源补依赖
降级dnf downgrade 包名,回退到源里的较低版本
重装dnf reinstall 包名,恢复被改动的包文件
适用平台openEuler / Kylin V10 服务器版 / UOS 服务器版
权限需 root 或 sudo

典型使用场景

  • 按适配清单装指定版本:厂商要求某中间件必须用特定版本,装新版本会不受支持
  • 升级后发现异常需要回退:用降级把版本拉回上一个已验证版本
  • 内网离线机器装包:把 rpm 文件拷进去,用 dnf 安装以自动补齐依赖
  • 修复被误改的包文件:配置文件之外的二进制被覆盖后,用重装恢复
  • 核对可装版本:先用 list available 看清源里有哪些版本再决定
  • 批量收敛版本:多台机器统一到同一版本,减少环境差异

实操示例

实操示例
dnf list available nginx | head                 # 先看源里有哪些版本
dnf install -y nginx-1.20.1*                    # 用通配符锁定版本前缀
dnf install -y ./local-package.rpm              # 装本地 rpm,自动补依赖
dnf downgrade -y openssl                         # 回退到源中较低版本
dnf reinstall -y nginx                           # 重装,恢复被改动的文件
dnf history list | head                         # 查看历史事务,便于回退整批变更
dnf history undo 3                              # 回退指定事务号

安装方式对照

方式写法适用与限制
装最新版dnf install 包名最常用,版本由源决定
锁定版本dnf install 包名-版本源中必须存在该版本
装本地文件dnf install ./包.rpm需能访问源以解析依赖
降级dnf downgrade 包名只在源中存在旧版本时可用
重装dnf reinstall 包名恢复包内文件,不动用户数据
离线安装先下载再拷入安装取决于发行版与工具集
用 dnf 装本地 rpm 比 rpm -ivh 稳妥:dnf 会从已配置的源里解析并补齐依赖,而 rpm 只负责解包,缺依赖时直接中止并留下未完成状态。没有可用源时,需要把依赖包一并准备好。
降级前先确认服务的配置格式与数据结构是否已随新版本升级过:程序回退了,配置文件与数据库结构未必跟着回退,可能直接起不来。降级前后各留一份配置备份,并把变更记进工单。

易错点

  • 用 rpm -ivh 装本地包遇到依赖缺失直接中止,之后又用普通安装去覆盖,容易留下版本混乱的半装状态
  • 降级只看包版本,忽略配置文件已被新版本改写,回退后服务启动报配置错误
  • 锁定版本时通配符写得太宽,装上了别的版本,适配要求形同虚设
  • 离线机器上只拷了主包不拷依赖,安装时报一串缺失依赖,来回补包浪费大量时间

数据来源与参考

  • dnf install 手册
  • openEuler 文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌