Linux RPM 命令:安裝、卸載、升級、查詢 RPM 包的 15 個示例
RPM 命令用于在 Linux 系統上安裝、卸載、升級、查詢、列出和檢查 RPM 包。

RPM是Red Hat Package Manager的縮寫。
通過root權限,您可以使用帶有適當選項的rpm命令來管理rpm軟件包。
在本文中,讓我們回顧 15 個 rpm 命令的實際示例。
讓我們以 Mysql Client 的 rpm 為例,運行所有示例。
1. 使用 rpm -ivh 安裝 RPM 包
RPM 文件名包含包名、版本、發行版和架構名。
例如,在 MySQL-client-3.23.57-1.i386.rpm 文件中:
MySQL-client – 包名
3.23.57 – 版本
1 – 發布
i386 – 架構
當您安裝 RPM 時,它會檢查您的系統是否適合 RPM 包中包含的軟件,確定 rpm 包內文件的安裝位置,將它們安裝到您的系統上,并將該軟件添加到其數據庫中安裝的 RPM 包。
以下 rpm 命令安裝 Mysql 客戶端包。
# rpm -ivh MySQL-client-3.23.57-1.i386.rpm Preparing... ########################################### [100%] 1:MySQL-client ########################################### [100%]
rpm 命令和選項
-i : 安裝一個包
-v : 詳細
-h :在解壓包存檔時打印散列標記。
2.使用rpm -qa查詢所有RPM包
您可以使用 rpm 命令查詢系統中安裝的所有軟件包。
# rpm -qa cdrecord-2.01-10.7.el5 bluez-libs-3.7-1.1 setarch-2.0-1.1 . .
-q 查詢操作
-a 查詢所有已安裝的包
要確定系統上是否安裝了特定的 rpm 軟件包,請按如下所示組合 rpm 和 grep 命令。以下命令檢查您的系統上是否安裝了 cdrecord 包。
# rpm -qa | grep 'cdrecord'
3. 使用 rpm -q 查詢特定的 RPM 包
上面的例子列出了所有當前安裝的包。安裝包后檢查安裝情況,您可以查詢特定的包并進行驗證,如下所示。
# rpm -q MySQL-client MySQL-client-3.23.57-1 # rpm -q MySQL package MySQL is not installed
注意:要查詢包,您應該指定確切的包名稱。如果包名不正確,那么 rpm 命令將報告該包未安裝。
4. 使用 rpm –queryformat 查詢各種格式的 RPM 包
Rpm 命令提供了一個選項 –queryformat,它允許您提供標題標簽名稱,以列出包。用 in {} 將標頭標簽括起來。
# rpm -qa --queryformat '%{name}-%{version}-%{release} %{size}\n' cdrecord-2.01-10.7 12324 bluez-libs-3.7-1.1 5634 setarch-2.0-1.1 235563 . . #
5.文件屬于哪個RPM包?– 使用 rpm -qf
假設您有文件列表,并且您想知道哪個包擁有所有這些文件。rpm 命令具有實現此目的的選項。
以下示例顯示 /usr/bin/mysqlaccess 文件是 MySQL-client-3.23.57-1 rpm 的一部分。
# rpm -qf /usr/bin/mysqlaccess MySQL-client-3.23.57-1
-f : 文件名
6. 使用 rpm -qdf 找到擁有文件的包的文檔
使用以下內容了解擁有文件的包的文檔列表。以下命令給出了與 mysql 包相關的所有手冊頁的位置。
# rpm -qdf /usr/bin/mysqlaccess /usr/share/man/man1/mysql.1.gz /usr/share/man/man1/mysqlaccess.1.gz /usr/share/man/man1/mysqladmin.1.gz /usr/share/man/man1/mysqldump.1.gz /usr/share/man/man1/mysqlshow.1.gz
-d :參考文檔。
7. 使用 rpm -qi 安裝 RPM 包的信息
rpm 命令使用 rpm -qi 提供有關已安裝 pacakge 的大量信息,如下所示:
# rpm -qi MySQL-client Name : MySQL-client Relocations: (not relocatable) Version : 3.23.57 Vendor: MySQL AB Release : 1 Build Date: Mon 09 Jun 2003 11:08:28 PM CEST Install Date: Mon 06 Feb 2020 03:19:16 AM PST Build Host: build.mysql.com Group : Applications/Databases Source RPM: MySQL-3.23.57-1.src.rpm Size : 5305109 License: GPL / LGPL Signature : (none) Packager : Lenz Grimmer URL : http://www.mysql.com/ Summary : MySQL - Client Description : This package contains the standard MySQL clients.
如果您有想要安裝的 RPM 文件,但想在安裝前了解有關它的更多信息,您可以執行以下操作:
# rpm -qip MySQL-client-3.23.57-1.i386.rpm Name : MySQL-client Relocations: (not relocatable) Version : 3.23.57 Vendor: MySQL AB Release : 1 Build Date: Mon 09 Jun 2020 11:08:28 PM CEST Install Date: (not installed) Build Host: build.mysql.com Group : Applications/Databases Source RPM: MySQL-3.23.57-1.src.rpm Size : 5305109 License: GPL / LGPL Signature : (none) Packager : Lenz Grimmer URL : http://www.mysql.com/ Summary : MySQL - Client Description : This package contains the standard MySQL clients.
-i : 查看有關 rpm 的信息
-p : 指定包名
8. 使用 rpm -qlp 列出包中的所有文件
要列出 RPM 包的內容,請使用以下命令,該命令將列出文件而不解壓到本地目錄文件夾中。
$ rpm -qlp ovpc-2.1.10.rpm /usr/bin/mysqlaccess /usr/bin/mysqldata /usr/bin/mysqlperm . . /usr/bin/mysqladmin
q : 查詢rpm文件
l : 列出包中的文件
p : 指定包名
9. 使用 rpm -qRP 列出依賴包
要查看此包所依賴的包列表,
# rpm -qRp MySQL-client-3.23.57-1.i386.rpm /bin/sh /usr/bin/perl
10. 使用 rpm -qsp 查看包中文件的狀態
以下命令用于查找 RPM 包中所有文件的狀態(已安裝、已替換或正常)。
# rpm -qsp MySQL-client-3.23.57-1.i386.rpm normal /usr/bin/msql2mysql normal /usr/bin/mysql normal /usr/bin/mysql_find_rows normal /usr/bin/mysqlaccess normal /usr/bin/mysqladmin normal /usr/bin/mysqlbinlog normal /usr/bin/mysqlcheck normal /usr/bin/mysqldump normal /usr/bin/mysqlimport normal /usr/bin/mysqlshow normal /usr/share/man/man1/mysql.1.gz normal /usr/share/man/man1/mysqlaccess.1.gz normal /usr/share/man/man1/mysqladmin.1.gz normal /usr/share/man/man1/mysqldump.1.gz normal /usr/share/man/man1/mysqlshow.1.gz
11. 使用 rpm -Vp 驗證特定的 RPM 包
驗證包會將有關包中已安裝文件的信息與有關從 rpm 數據庫中存儲的包元數據中獲取的文件的信息進行比較。在以下命令中,-V 用于驗證,-p 選項用于指定要驗證的包名稱。
# rpm -Vp MySQL-client-3.23.57-1.i386.rpm S.5....T c /usr/bin/msql2mysql S.5....T c /usr/bin/mysql S.5....T c /usr/bin/mysql_find_rows S.5....T c /usr/bin/mysqlaccess
上述輸出中的字符表示以下內容:
S 文件大小不同
M 模式不同(包括權限和文件類型)
5 MD5 和不同
D 設備主要/次要編號不匹配
l readlink(2) 路徑不匹配
U 用戶所有權不同
G 組所有權不同
T mTime 不同
12. 使用 rpm -Vf 驗證包擁有文件
以下命令驗證擁有給定文件名的包。
# rpm -Vf /usr/bin/mysqlaccess S.5....T c /usr/bin/mysql #
13. 使用 rpm -Uvh 升級 RPM 包
升級軟件包與安裝軟件包類似,但 RPM 會在安裝新軟件包之前自動卸載軟件包的現有版本。如果未找到舊版本的軟件包,升級選項仍將安裝它。
# rpm -Uvh MySQL-client-3.23.57-1.i386.rpm Preparing... ########################################### [100%] 1:MySQL-client ###########################################
14. 使用 rpm -e 卸載 RPM 包
使用 -e 刪除已安裝的 rpm 包,如下所示。卸載后,可以使用rpm -qa查詢,驗證卸載。
# rpm -ev MySQL-client
15. 使用 rpm -Va 驗證所有 RPM 包
以下命令驗證所有已安裝的軟件包。
# rpm -Va S.5....T c /etc/issue S.5....T c /etc/issue.net S.5....T c /var/service/imap/ssl/seed S.5....T c /home/httpd/html/horde/ingo/config/backends.php . . S.5....T c /home/httpd/html/horde/ingo/config/prefs.php S.5....T c /etc/printcap
Linux MySQL
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。