rpm包管理基礎
- 2019 年 10 月 5 日
- 筆記
rpm 全稱RPM Package Manager
1.rpm包的查詢
常用的有:
rpm -qa # 列出所有已安裝的rpm包
rpm -qi zsh # 查詢zsh的具體資訊
rpm -qf /bin/ls# 查詢/bin/ls由哪個軟體包釋放的
rpm -qd zsh # 查詢zsh提供哪些幫助文檔
rpm -qc zsh # 查詢zsh的配置文件地址
rpm -ql zsh # 查詢zsh安裝過程中釋放的文件路徑
不太常用的有:
rpm -q –changelog zsh # 查詢zsh軟體包的變更記錄
rpm -q –requires zsh # 查詢zsh依賴的其他軟體包
rpm -q –scripts zsh # 查詢zsh 包含的腳本【安裝、卸載時候會調用這些腳本】
另外,加上 -p參數適用於尚未安裝的軟體包的資訊查詢,如:
【注意加上-p參數後,後面接的是必須是完整的包名稱】
rpm -qpi httpd-2.2.15-39.el6.centos.x86_64.rpm # 查詢httpd軟體包的詳細資訊
同理,-qpc,-qpl,-qpd ,-qp –changelog 的用法類似,都是用於查詢尚未安裝的軟體包各種情況,可以參考上面。
2.rpm包的安裝
rpm -ivh xxx.rpm 安裝xxx軟體包
rpm -Uvh xxx.rpm 升級【存在則升級,不存在則本次安裝】
rpm -Fvh xxx.rpm 升級【存在則升級,不存在則本次也不安裝】
rpm -ivh –replacepkgs xxx.rpm 覆蓋安裝
rpm -ivh –oldpackage xxx.rpm 降級安裝rpm包
安裝過程中還有幾個可選參數,
–test
如rpm -ivh –test xxx.rpm 表示僅測試軟體包的安裝情況,不實際安裝
安裝過程中,如果我們沒有事先導入公鑰,安裝時候會提示缺少校驗或簽名。可以加上下面的選項:
–nodigest # 讀取時不校驗打包或頭部校驗【如:rpm -ivh –nodigest xxx.rpm】
–nosignature # 讀取時不校驗打包或頭部簽名
3.rpm包的卸載
rpm -e xxx # 注意這裡xxx不需要寫具體的xxx.rpm。【卸載httpd.2.2.19.rpm,只要寫rpm -e httpd即可】
卸載過程中還有幾個可選參數,
–nodeps
如rpm -ivh –nodeps httpd.2.1.3-12.rpm 表示忽略依賴關係,不建議這樣使用。
–test
如rpm -ivh –test xxx.rpm 表示僅測試軟體包的安裝情況,不實際卸載
–noscripts 表示不執行rpm安裝過程的腳本,不建議使用該參數。
4.rpm包的校驗
校驗軟體包,是將已安裝的文件的資訊,與從軟體包中獲取的保存在 rpm 資料庫中的有關文件的元數據進行比較。校驗比較的內容有每個文件的大小,MD5 校驗和,許可,類型,屬主。任何不對的地方都回顯示出來。
rpm -V zsh # 校驗zsh包【zsh已安裝情況下】
rpm -Va # 校驗所有已安裝的軟體包的文件【md5】
rpm -Vf /bin/ls# 校驗/bin/ls文件【md5資訊】
校驗給出提示資訊有如下幾種:
c %config 配置文件
d %doc 文檔
g %ghost 佔位文檔 (就是說,文件內容不包含在軟體包有效內容裡面)
l %license 許可文件
r %readme 說明文件
S file Size 大小不一致
M Mode 模式不一致 (包括許可和文件類型)
5 MD5 sum 校驗和不一致
D Device 主從設備號不匹配
L readLink(2) 路徑不匹配
U User 屬主不一致
G Group 組屬主不一致
T mTime 時間不一致
例如下圖,對系統內已安裝的所有包文件進行校驗:

rpm包來源合法性校驗
一般用於對新下載好的軟體包進行校驗MD5值使用
rpm –import /PATH/FROM/GPG-PUBKEY-FILE
例如:rpm -K zsh-4.3.10-7.el6.x86_64.rpm
提示如下,zsh-4.3.10-7.el6.x86_64.rpm: rsa sha1 (md5) pgp md5 OK
5.rpm資料庫重建
rpm –initdb # 初始化rpm資料庫
rpm –rebuilddb # 重新生成rpm資料庫
可能還有不完善的地方,待補充。