介紹如何在 Linux 中使用 yum
套件管理系統,復原安裝的更新套件。
在 CentOS Linux 或是 RHEL(Red Hat Enterprise Linux)中使用
yum
升級或安裝套件之後,如果新版本的軟體發生問題,就可以考慮使用 yum
的歷史紀錄功能,將已經升級的套件降級回原本的版本。
降級的動作對於
selinux
、selinux-policy-*
、kernel
、glibc
這類較核心的套件是不支援的,yum
的歷史記錄只能用於小幅的套件降級。yum
復原動作
假設我們使用 yum
安裝了一個 screen
套件:
# 安裝 screen 套件
sudo yum install screen
安裝完套件之後,如果我們想要復原過去的操作,可以先使用 yum
搭配 history
參數列出過去的套件管理操作歷史記錄:
# 列出歷史記錄
sudo yum history
ID | 指令列 | 日期與時間 | 動作 | 已變動 ------------------------------------------------------------------------------- 14 | install screen | 2021-05-05 21:02 | Install | 1 13 | install epel-release | 2021-05-05 20:59 | Install | 1 12 | update net-tools | 2021-05-05 20:46 | Upgrade | 1 < 11 | | 2020-11-25 17:58 | Reason Change | 2 > 10 | | 2020-11-25 17:58 | Reason Change | 14 9 | -v -y install rng-tools | 2020-11-25 17:58 | Install | 51 8 | install python3 python3- | 2020-11-25 17:57 | Install | 3 7 | -y update | 2020-11-25 17:54 | I, U | 217 EE 6 | | 2020-11-25 17:54 | Reason Change | 1 5 | -v -y install iscsi-init | 2020-11-25 17:54 | Install | 3 4 | | 2020-11-25 17:54 | Reason Change | 1 3 | -C -y remove firewalld - | 2020-01-14 05:52 | Removed | 11 EE 2 | -C -y remove linux-firmw | 2020-01-14 05:52 | Removed | 1 1 | | 2020-01-14 05:49 | Install | 432 EE
假設我們想要將安裝 screen
套件的動作復原,可以使用 yum
搭配 history undo
參數,並指定要進行復原的動作 ID。
以這裡安裝 screen
套件的動作來說,其 ID 就是 14
,若要將其復原則可執行:
# 復原 ID 為 14 的歷史動作 sudo yum history undo 14
yum
降級套件
假設我們想要降級指定的套件,可以使用 yum
搭配 downgrade
參數,並指定要進行降級的套件名稱。
例如若想要降級 httpd
套件,則執行:
# 降級 httpd 套件至上一個版本
sudo yum downgrade httpd
若只有指定套件名稱,沒有指定版本的話,就會降級至該套件的上一個版本,而如果想要降級至自己指定的版本號,可以連同版本一起指定:
# 降級 httpd 套件至 2.2.3-22.el5 版本
sudo yum downgrade httpd-2.2.3-22.el5