如何使用Yum History查找已安裝或已刪除的軟件包信息
Yum 是 RHEL/CentOS 的一個基于 rpm 的交互式高級包管理器,用戶可以用它來安裝新的軟件包、卸載或清除舊的/不需要的軟件包。它可以自動運行系統(tǒng)更新,并執(zhí)行依賴分析,對已安裝的或可用的軟件包進(jìn)行查詢等等。
在本文中,我們將解釋如何查看 Yum 事務(wù)的歷史記錄,以便于了解有關(guān)安裝的軟件包以及從系統(tǒng)中所卸載/清除軟件包的信息。
下面是一些如何使用 YUM history 命令的例子。
查看完整的 Yum 歷史
要查看 Yum 事務(wù)完整的歷史記錄,我們可以運行以下命令,然后將顯示:事務(wù) ID、執(zhí)行特定操作的用戶、操作發(fā)生的日期和時間、實際操作以及任何錯誤的附加信息與操作:
yum history

用 Yum 查找軟件包信息
history 的子命令:info/list/summary 可以將事務(wù) ID 或包名作為參數(shù)。此外,list 子命令可以加上特殊的參數(shù),all 表示所有的事務(wù)。
運行以下命令查看yum的歷史操作記錄:
yum history list all
并且,你可以使用下面的 info 命令查看涉及指定軟件包的事務(wù)詳情,例如 httpd:
yum history info httpd

使用以下命令可以獲得包含 httpd 軟件包的事務(wù)的摘要:
yum history summary httpd

還可以使用事務(wù)的 ID 來查找,以下命令會顯示 ID 為 15 的事務(wù)的詳情。
yum history info 15

使用 yum history 查找軟件包事務(wù)信息
有一些用于打印某個或多個軟件包事務(wù)詳情的子命令。我們可以使用 package-list 或 package_info 查看關(guān)于 httpd 的更多信息,例如:
yum history package-list httpd或 yum history package-info httpd

要得到多個軟件包的記錄,我們可以運行:
yum history package-list httpd epel-release或 yum history packages-list httpd epel-release

使用 Yum 回滾軟件包
此外,還有一些 history 的子命令可以讓我們撤銷/重做/回滾事務(wù)。
undo - 會撤銷一個指定的事務(wù)。
redo - 重復(fù)一次指定的事務(wù)。
rollback - 撤銷指定事務(wù)之后的所有事務(wù)。
它們采用單個事務(wù) id 或關(guān)鍵字 last 和從最后一個事務(wù)開始的偏移量。
例如,假設(shè)我們已經(jīng)做了 60 個事務(wù),last 是指事務(wù) 60,last-4 指向事務(wù) 56。
以上子命令是如下工作的:如果我們有 5 個事務(wù)——V,W,X,Y 和 Z,其中分別是安裝各個軟件包的。
yum history undo 2 #將刪除軟件包 W yum history redo 2 #將重新安裝軟件包 W yum history rollback 2 #將刪除軟件包 X、 Y 和 Z
在下面的示例中,事務(wù) 2 是一個更新操作,如下所示,以下 redo 命令將重復(fù)事務(wù) 2 直到所有軟件包到更新到當(dāng)前時間的最新版本:
yum history | grep -w "2"

yum history redo 2

redo 子命令同樣可以在我們指定事務(wù)之前加上一些可選的參數(shù):
force-reinstall - 重新安裝所有在此事務(wù)中安裝的軟件包(通過 yum install、upgrade 或 downgrade)。
force-remove - 移除所有已經(jīng)更新或回滾的軟件包。
yum history redo force-reinstall 16

查找 Yum history數(shù)據(jù)庫和來源信息
這些子命令為我們提供有關(guān)歷史記錄數(shù)據(jù)庫和其它信息來源的信息:
addon-info - 提供更多的信息來源。
stats - 顯示當(dāng)前歷史數(shù)據(jù)庫的統(tǒng)計信息。
sync - 使我們能夠更改為所有已安裝軟件包存儲的 rpmdb/yumdb 數(shù)據(jù)。
看一下以下的命令的子命令實際上是怎樣工作的:
yum history addon-info yum history stats yum history sync
使用 new 子命令設(shè)置新的歷史文件,將事務(wù)歷史存儲在單個SQLite數(shù)據(jù)庫文件中。啟動新的事務(wù)歷史記錄文件
yum history new

我們可以在 yum 手冊頁找到關(guān)于 Yum history 命令和其它幾個命令的完整信息:
# man yum