本文分享自天翼雲開發者社區《RPM常用命令以及組合使用場景》,作者:鄔祥釗 當涉及到管理基於 Red Hat 系的 Linux 系統時,RPM (Red Hat Package Manager) 是一個常用的軟體包管理器。以下是一些常用的 RPM 命令以及它們的組合使用場景: 常用命令: 1. rp ...
本文分享自天翼雲開發者社區《RPM常用命令以及組合使用場景》,作者:鄔祥釗
當涉及到管理基於 Red Hat 系的 Linux 系統時,RPM (Red Hat Package Manager) 是一個常用的軟體包管理器。以下是一些常用的 RPM 命令以及它們的組合使用場景:
常用命令:
1. rpm -ivh package.rpm :安裝一個新的軟體包,其中 "-i" 代表安裝,"-v" 表示顯示詳細信息,"-h" 顯示進度條。
2. rpm -Uvh package.rpm :升級一個已有的軟體包,其中 "-U" 代表升級,其餘參數與上述相同。
3. rpm -e package_name :刪除一個軟體包,其中 "-e" 代表卸載。
4. rpm -qa :列出系統上所有已安裝的軟體包。
5. rpm -q package_name :查詢指定軟體包是否已經安裝,或者查看一個已安裝軟體包的版本號。
6. rpm -qi package_name :查詢關於某個軟體包的信息,如作者、描述、依賴等。
7. rpm -ql package_name :列出一個軟體包安裝的文件列表。
8. rpm -qf file_path :查找某個文件屬於哪個軟體包。
9. rpm -q --provides package_name :查詢該包提供的內容。
10. yum install package_name :使用 Yum 包管理器安裝軟體包,其中 "install" 為安裝命令。
11. yum update package_name :使用 Yum 包管理器更新已有軟體包,其中 "update" 為更新命令。
12. yum remove package_name :使用 Yum 包管理器刪除軟體包,其中 "remove" 為刪除命令。
進階命令:
1. rpm2cpio package.rpm | cpio -idvm : 將 RPM 包解壓並將其中的文件提取到當前目錄下,可以方便地查看軟體包中的文件和目錄結構。
2. yum list available package_name : 列出所有可用的軟體包,包括未安裝的,與指定的軟體包名稱相似的軟體包列表。
3. rpm -qa --last : 列出所有已安裝軟體包,按照最近安裝或更新時間排序。
4. rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' : 列出所有已安裝軟體包的名稱、版本號和架構。
5. rpm --verify package_name : 驗證軟體包的完整性併列出可能存在問題的文件。
6. rpm -i --test package.rpm : 模擬軟體包的安裝過程,檢查是否有依賴項問題或其他錯誤。
7. rpm -Uvh --force package.rpm : 強制安裝軟體包,即使存在版本衝突或其他問題。
8. rpm -Uvh --oldpackage package.rpm : 降級軟體包為舊版本,並覆蓋當前版本。
9. rpm -e --nodeps package_name : 卸載軟體包,忽略其依賴項。
10. rpm -qa | grep package.rpm: 檢查是否安裝某軟體包。
11. yum history : 列出所有 Yum 包管理器操作的歷史記錄,可以查看安裝、升級和刪除操作的詳細信息。
12. yum provides */文件或命令:文件或者命令屬於哪個包提供,即使未安裝該包也能查詢。如下圖顯示未安裝mysql但可以查詢到mysqld.service是由該包提供
組合使用場景:
1. 安裝軟體包並解決依賴關係: rpm -ivh package.rpm && yum install -y dependency
2. 列出一個軟體包及其文件列表的詳細信息: rpm -qi package_name | grep -iE 'name|version|release' && rpm -ql package_name
3. 刪除軟體包及其依賴: yum remove --autoremove package_name
4. 驗證所有已安裝軟體包的完整性併列出可能存在問題的文件: rpm -Va | awk '{ if($NF != "c") print }'
5. --queryformat參數實現自定義查詢
這裡提一下rpm的--queryformat參數,使用這個參數可以實現自定義的欄位信息查詢,如下:
對於一個包我們使用rpm -qi可以得到如下信息
如果我們想要其中過的Version或者License或者其他任何想要的欄位信息,我們可以使用這個參數進行提取,如下
因此,我們可以通過這個參數進一步實現批量的參數提取等功能,而不需要單獨對欄位寫腳本進行判斷與裁剪。
總之,RPM 是 Linux 系統中常用的軟體包管理器之一。掌握這些命令以及它們的組合使用場景能夠使更加高效地管理和維護系統以及解決軟體安裝過程中遇到的問題。通過深入瞭解 RPM 命令和選項的功能,可以更好地理解和應用軟體包管理工具來滿足特定需求。