在 Red Hat/CentOS 系統中,可以使用 yum history
命令查看和管理 YUM/DNF 的歷史操作記錄。以下是詳細使用方法:
1. 查看完整歷史記錄
sudo yum history list
# 或簡寫
sudo yum history
輸出示例:
ID | 命令行 | 日期與時間 | 操作 | 變更數
---|------------------------|------------------|------------|--------
5 | install httpd | 2024-03-01 10:00 | Install | 1
4 | update | 2024-02-28 15:30 | Update | 12
3 | remove mariadb | 2024-02-25 09:15 | Erase | 1
2. 查看特定事務的詳細信息
sudo yum history info <ID>
示例:
sudo yum history info 5
輸出內容:
- 操作的軟件包列表
- 事務開始/結束時間
- 影響的軟件包數量
- 完整的命令行參數
3. 搜索特定操作
sudo yum history list <關鍵字>
示例:
sudo yum history list httpd # 查找所有涉及 httpd 的操作
4. 撤銷(回滾)歷史操作
sudo yum history undo <ID> # 撤銷指定事務
sudo yum history undo last # 撤銷最近一次操作
示例:
sudo yum history undo 4 # 回滾事務ID為4的操作
5. 重做某個歷史操作
sudo yum history redo <ID>
適用場景:
例如,誤撤銷了某個安裝操作后恢復。
6. 清理歷史記錄
sudo yum history new # 重置歷史記錄(新建一個空記錄)
sudo yum history sync # 同步元數據到歷史數據庫
關鍵字段說明
字段 | 說明 |
---|---|
ID | 事務的唯一標識符 |
操作 | Install/Update/Erase/Depclean |
變更數 | 影響的軟件包數量 |
注意事項
- 需要 root 權限:所有操作需加
sudo
。 - 依賴關系:回滾時可能因依賴變化失敗,需手動解決。
- 僅限 YUM/DNF:
rpm
直接安裝的包不會被記錄。 - 歷史存儲位置:數據庫文件通常在
/var/lib/yum/history/
。
示例工作流
- 發現最近更新的包導致問題:
sudo yum history | head -n 5 # 查看最近5條記錄
- 確認問題事務:
sudo yum history info 6
- 回滾操作:
sudo yum history undo 6
通過 yum history
,您可以高效管理系統變更,快速定位和修復問題。