標籤:rpm包管理
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 時間不一致
例如,對系統內已安裝的所有包檔案進行校正:
650) this.width=650;" title="1.png" src="http://s3.51cto.com/wyfs02/M01/72/62/wKioL1XimjPRvAmtAACZzR2y3D8911.jpg" alt="wKioL1XimjPRvAmtAACZzR2y3D8911.jpg" />
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資料庫
可能還有不完善的地方,待補充。
rpm包管理基礎