温馨提示×

linux yum如何回滚

小樊
53
2026-09-03 16:22:11
栏目: 智能运维

在 Linux 中使用 yum 进行回滚(rollback),通常有以下几种方式,取决于你使用的发行版(CentOS 6/7 常用 yum,CentOS 8+ 一般用 dnf,但 dnf 兼容 yum 命令)。


一、使用 yum history 回滚(推荐)

1. 查看 yum 操作历史

yum history

yum history list

示例输出:

ID     | Command line             | Date and time    | Action(s)      | Altered
---------------------------------------------------------------------------
10     | install nginx            | 2024-01-10 10:00 | Install        |    5
9      | update                   | 2024-01-09 09:00 | Update         |   20

2. 查看某次操作的详细信息

yum history info 10

3. 回滚到某次操作之前

yum history undo 10

⚠️ 该命令会撤销第 10 次操作(如卸载刚装的包)

4. 回滚到某个历史点(重做反向操作)

yum history rollback 9

⚠️ 该命令会回滚到 ID 9 之后的所有操作


二、回滚整个系统更新(例如升级后出问题)

回滚到某次更新之前

yum history rollback <ID>

例如:

yum history rollback 8

表示系统状态回到 ID=8 操作完成后的状态。


三、使用 dnf(CentOS 8 / Rocky / Alma)

如果你用的是 dnf(yum 的替代品):

dnf history
dnf history undo <ID>
dnf history rollback <ID>

四、注意事项(非常重要)

  1. 必须开启 yum 历史记录

    • 默认开启
    • 配置文件:/etc/yum.conf
    history_record=1
    
  2. 回滚可能失败的情况

    • 软件包已被删除且仓库中不存在
    • 依赖关系复杂
    • 第三方仓库不可用
  3. 回滚不会自动重启服务

    • 回滚后建议手动检查服务状态:
    systemctl restart xxx
    
  4. 不建议在关键生产环境直接 rollback

    • 最好先在测试环境验证

五、应急方案(无 history 时)

如果 yum history 不可用:

  • 手动重新安装旧版本:
yum install package-1.2.3-4.el7
  • 或从缓存安装:
yum install --downgrade package

如果你能告诉我:

  • 系统版本(CentOS 6/7/8?)
  • 安装、升级还是删除导致的问题

我可以给你更精确的回滚命令。

0