CentOS/RHEL使用yum命令降级或回滚更新

时间:2020-01-09 10:40:50  来源:igfitidea点击:

如何使用yum命令降级或回滚RHEL(Red Hat)/CentOS/Scientific Linux服务器上的软件包更新?

在本教程中,您将学习:

  • 如何使用YUM降级已安装的软件包
  • 如何将已安装的软件包回滚到以前的版本

以下示例仅适用于

  • CentOS或Red Hat Enterprise Linux 5.4+
  • CentOS或Red Hat Enterprise Linux 6.x +
  • CentOS或Red Hat Enterprise Linux 7.x +

CentOS/RHEL v5.4 +用户的YUM降级语法

基本语法为:

yum downgrade package1
yum downgrade package1 package2

此语法也可在CentOS/RHEL v6.x/7.x上使用,但我建议所有用户使用以下yum历史记录方法。

例子

要降级zsh,请执行:

sudo yum downgrade zsh

这会将软件包降级到以前的最高版本,或者您可以指定要降级的软件包的完整版本和发行号,如下所示:

sudo yum downgrade yum downgrade zsh-5.0.2-7.el7

CentOS/RHEL 6.x/7.x +用户的YUM降级语法

语法为:

## get list ##
yum history
 
## Okay undo/downgrade it ##
yum history undo {NUMBER-HERE}

例子

出于演示目的,我将安装/更新zsh:

sudo yum install zsh

现在,列出Yum历史:

sudo yum history
sudo yum history list
sudo yum history info

让我们撤消(降级)ID#11(即zsh update的最后一个操作):

sudo yum history undo 11

验证zsh软件包历史记录,执行:

sudo yum history list zsh

输出示例:

Loaded plugins: fastestmirror
ID     | Command line             | Date and time    | Action(s)      | Altered
------------------------------------------------------------------------------
    12 | history undo 11          | 2014-05-05 11:19 | Downgrade      |    1   
    11 | install zsh              | 2014-05-05 11:14 | Update         |    1   
    10 | downgrade zsh            | 2014-05-05 11:08 | Downgrade      |    1   
     8 | install zsh              | 2014-05-05 10:56 | Install        |    1   
history list

有关降级的注意事项

执行降级有很多问题。例如:

  • 小脚本是不可逆的:rpm小脚本无法逆转它们执行的过程。例如,脚本(%pre,%preun,%post,%postun等)可以运行echo Foo foo foo >>/etc/some/file。执行降级时无法撤消该操作。

  • 如果用户数据/用户配置未通过单向更新进行修改,则可以进行降级。示例:mysql从4-> 5升级将转换一个db,但没法退档

  • 将桌面应用程序从一个版本升级到下一个主要版本会以这种方式修改配置文件,但无法将其修改回来。

  • 在某些过程中,没有人会去做使其可逆的工作:lvm1-> lvm2,数据库转换,udev迁移,ext3-> ext4。当前,depsolver不能很好地进行降级,因为它不能降级额外的软件包。但是,您可以使用yum-debug-dump和yum-debug-restore之类的工具,这些工具应包括所有需要的软件包。