温馨提示×

Linux yum怎么回滚版本

小樊
41
2026-08-21 14:18:02
栏目: 智能运维

在 Linux 中,yum 本身没有像 dnf history rollback 那样完整的自动回滚机制,但仍有几种常见方式可以“回滚/降级”软件版本。下面按推荐程度给你说明(适用于 CentOS 7 / RHEL 7 等使用 yum 的系统)。


一、查看 yum 历史(最重要的一步)

yum history

示例输出:

ID     | Command line             | Date and time    | Action(s)
-------+--------------------------+------------------+-----------
12     | install nginx            | 2024-01-01 10:00 | Install
11     | update                   | 2023-12-30 09:00 | Update

二、回滚方式一:使用 yum history undo(推荐)

如果升级或安装是最近一次 yum 操作,可以直接撤销:

yum history undo 12

✅ 优点

  • 自动卸载新版本、安装旧版本
  • 比较安全

❌ 限制

  • 只能撤销连续的历史事务
  • 如果中间做过其他 yum 操作,可能失败

三、回滚方式二:手动降级(最常用、最稳定)

1️⃣ 查看可用版本

yum --showduplicates list 软件名

例如:

yum --showduplicates list nginx

2️⃣ 指定版本降级

yum downgrade 软件名-版本

示例:

yum downgrade nginx-1.20.2-1.el7

✅ 优点

  • 不依赖 yum 历史
  • 生产环境最常用

四、回滚方式三:重新安装旧版本

如果 downgrade 失败(依赖冲突):

yum remove 软件名
yum install 软件名-版本

⚠️ 注意:

  • 可能同时卸载依赖包
  • 建议先确认影响范围

五、回滚方式四:使用仓库快照(高级)

如果你使用的是:

  • CentOS 8 / RHEL 8(dnf)
  • 或者配置了 yum 版本快照
dnf history rollback 10

⚠️ yum(CentOS 7)不支持 rollback,只支持 undo


六、回滚内核版本(常见需求)

查看已安装内核

rpm -qa | grep kernel

修改默认启动内核

grub2-set-default 1
reboot

或:

grubby --set-default-index=1

七、回滚前强烈建议做的事 ✅

yum history info 12

确认:

  • 安装了哪些包
  • 是否会影响其他服务

八、总结对照表

场景 推荐方式
刚升级/安装 yum history undo
指定版本回退 yum downgrade
历史复杂 手动重装旧版本
CentOS 8+ dnf history rollback
内核回滚 修改 GRUB

如果你愿意,可以告诉我:

  • ✅ 系统版本(CentOS 7 / RHEL 7?)
  • ✅ 要回滚的软件名
  • ✅ 是升级后出问题还是误装

我可以给你精确命令,避免翻车。

0