温馨提示×

linux yum怎样回滚

小樊
53
2026-09-06 20:57:08
栏目: 智能运维

在 Linux 中使用 yum(CentOS/RHEL 6/7) 回滚软件包,通常有几种方式,取决于你使用的是 yum 历史记录 还是 yum 版本锁定。下面按常见场景说明。


一、使用 yum history(推荐方式)

yum 会记录每一次安装、更新、删除操作。

1. 查看 yum 操作历史

yum history

或查看更详细:

yum history list

示例输出:

ID | Command line | Date | Action | Altered
------------------------------------------------
10 | update       | ...  | Update | 15
 9 | install nginx| ...  | Install| 3

2. 查看某次操作详情

yum history info 10

3. 回滚某次操作

yum history undo 10

4. 回滚到指定历史之前( redo / rollback )

yum history rollback 9

表示回滚到 ID 9 之前的状态

5. 重做某次操作

yum history redo 10

⚠️ 注意:

  • 需要 仓库中仍存在旧版本 RPM
  • 如果旧版本已不可用时,undo 可能失败

二、手动降级(downgrade)

如果知道包名和版本:

yum downgrade 包名-旧版本

示例:

yum downgrade httpd-2.4.6-90.el7

或一次降多个:

yum downgrade pkg1 pkg2

三、使用 yum versionlock(防止再次升级)

回滚后防止被再次更新:

yum install yum-plugin-versionlock
yum versionlock 包名

查看锁定:

yum versionlock list

解除锁定:

yum versionlock delete 包名

四、常见问题

Q1:yum history undo 失败?

可能原因:

  • 旧版本 RPM 不在仓库
  • 依赖关系冲突

解决:

  • 手动 downgrade
  • 或启用旧仓库(如 centos-vault

Q2:CentOS 8 怎么办?

CentOS 8 使用 dnf,命令类似:

dnf history undo <ID>

五、总结速查表

目的 命令
查看历史 yum history
回滚操作 yum history undo ID
回滚到某点 yum history rollback ID
降级包 yum downgrade pkg
锁定版本 yum versionlock pkg

如果你能贴出 具体 yum history 输出或想回滚的包名,我可以帮你写精确命令。

0