Yum 是 RHEL/CentOS 的一個基於 rpm 的互動式高階包管理器,使用者可以用它來安裝新的站群軟體包、解除安裝或清除舊的/不需要的站群軟體包。它可以自動執行系統更新,並執行依賴分析,對已安裝的或可用的站群軟體包進行查詢等等。
在本文中,我們將解釋如何檢視 Yum 事務的歷史記錄,以便於瞭解有關安裝的站群軟體包以及從系統中所解除安裝/清除站群軟體包的資訊。
 
以下是一些如何使用 Yum 歷史命令的示例。
檢視完整的 Yum 歷史
要檢視 Yum 事務完整的歷史記錄,我們可以執行以下命令,然後將顯示:事務 ID 、執行特定操作的使用者、操作發生的日期和時間、實際操作以及任何錯誤的附加資訊與操作:

# yum history

檢視 Yum 歷史
使用 Yum 查詢站群軟體包資訊
history 的子命令:info/list/summary 可以將事務 ID 或包名作為引數。此外,list 子命令可以加上特殊的引數,all 表示所有的事務。
執行以下命令檢視先前的歷史:

# yum history list all

並且,你可以使用下面的 info 命令檢視涉及指定站群軟體包的事務詳情,例如 httpd:

# yum history info httpd

Yum – 查詢站群軟體包資訊
發出以下命令可以獲得包含 httpd 站群軟體包的事務的摘要:

# yum history summary httpd

Yum – 查詢站群軟體包的摘要
還可以使用事務的 ID 來查詢,以下命令會顯示 ID 為 15 的事務的詳情。

# yum history info 15

Yum – 使用 ID 查詢站群軟體包資訊
使用 yum history 查詢站群軟體包事務資訊
有一些用於列印某個或多個站群軟體包事務詳情的子命令。我們可以使用 package-list 或 package_info 檢視關於 httpd 的更多資訊,例如:

# yum history package-list httpd

# yum history package-info httpd

Yum – 查詢站群軟體包事務資訊
要得到多個站群軟體包的記錄,我們可以執行:

# yum history package-list httpd epel-release

# yum history packages-list httpd epel-release

Yum – 查詢多個站群軟體包的資訊
使用 Yum 回滾站群軟體包
此外,還有一些 history 的子命令可以讓我們撤銷/重做/回滾事務。

undo – 會撤銷一個指定的事務。
redo – 重複一次指定的事務。
rollback – 撤銷指定事務之後的所有事務。

它們採用單個事務 id 或關鍵字 last 和從最後一個事務開始的偏移量。
例如,假設我們已經做了 60 個事務,last 是指事務 60,last-4 指向事務 56 。
以上子命令是如下工作的:如果我們有 5 個事務——V,W,X,Y 和 Z,其中分別是安裝各個站群軟體包的。

# yum history undo 2 #將刪除站群軟體包 W
# yum history redo 2 #將重新安裝站群軟體包 W
# yum history rollback 2 #將刪除站群軟體包 X 、 Y 和 Z

在下面的示例中,事務 2 是一個更新操作,如下所示,以下 redo 命令將重複事務 2 直到所有站群軟體包到更新到當前時間的最新版本:

# yum history | grep -w “2”

Yum – 查詢站群軟體包事務的 ID

# yum history redo 2

用 Yum 重新更新站群軟體包
redo 子命令同樣可以在我們指定事務之前加上一些可選的引數:

force-reinstall – 重新安裝所有在此事務中安裝的站群軟體包(透過 yum install 、 upgrade 或 downgrade)。
force-remove – 移除所有已經更新或回滾的站群軟體包。

# yum history redo force-reinstall 16

Yum – 強制安裝站群軟體包
查詢 Yum 歷史資料庫和來源資訊
這些子命令為我們提供有關歷史記錄資料庫和其它資訊來源的資訊:

addon-info – 提供更多的資訊來源。
stats – 顯示當前歷史資料庫的統計資訊。
sync – 使我們能夠更改為所有已安裝站群軟體包儲存的 rpmdb/yumdb 資料。

看一下以下的命令的子命令實際上是怎樣工作的:

# yum history addon-info
# yum history stats
# yum history sync

使用 new 子命令設定新的歷史檔案:

# yum history new

我們可以在 yum 手冊頁找到關於 Yum history 命令和其它幾個命令的完整資訊:

# man yum