在 CentOS / RHEL / Rocky / AlmaLinux 等使用 yum(或 dnf) 的系统中,降级软件包有几种常见方式。下面按最常用 → 进阶给你说明。
先确认仓库里是否有旧版本:
yum --showduplicates list 软件名
例如:
yum --showduplicates list nginx
输出类似:
nginx-1.20.2-1.el7
nginx-1.22.1-1.el7
如果 当前已安装版本比仓库中的新,可以直接降级:
yum downgrade 软件名
示例:
yum downgrade nginx
✅ 适合:仓库中只有一个旧版本,且依赖关系简单
yum downgrade 软件名-版本号
示例:
yum downgrade nginx-1.20.2-1.el7
如果依赖包也需要一起降级:
yum downgrade nginx-1.20.2-1.el7 nginx-mod-1.20.2-1.el7
有时降级会失败,是因为依赖包版本不匹配:
yum downgrade 包1 包2 包3
例如:
yum downgrade openssl-libs-1.1.1k openssl-1.1.1k
如果你刚升级完,这是最安全的方法。
yum history
yum history undo 事务ID
示例:
yum history undo 12
✅ 优点:完整回滚升级操作
❌ 缺点:只能回滚最近的 yum 操作
降级后,避免被 yum update 再次升级:
yum install yum-plugin-versionlock
yum versionlock 软件名
锁定指定版本:
yum versionlock add 软件名-版本号
查看锁定:
yum versionlock list
取消锁定:
yum versionlock delete 软件名
可能是:
解决:
yum install ./xxx.rpm
dnf 与 yum 用法几乎一致:
dnf downgrade 软件名
dnf history undo ID
✅ 首选
yum downgrade 软件名-版本号
✅ 刚升级完
yum history undo ID
✅ 防止再升级
yum versionlock
如果你愿意,可以告诉我:
我可以给你精确命令。