一) 什麼是RPM?node
Redhat Package Manager的簡稱,就是包管理工具,它是linux中使用安裝最簡便的一種包管理工具。linux
rpm 執行安裝包有兩種:
二進制包(Binary):二進制包能夠直接安裝在計算機中安全
源代碼包(Source):源代碼包將會由RPM自動編譯、安裝。源代碼包常常以src.rpm做爲後綴架構
rpm包管理通常由如下幾個內容組成:即,安裝 查詢 卸載 升級 校驗 庫重建等組成。ide
rpm包的名稱通常由包名、版本、子版本以及所支持的架構名這基本分組成工具
咱們先來看下man rpm測試
二) RPM命令的使用總結: ui
1) 安裝程序包:rpm [選項] 文件路徑spa
經常使用選項 -i : 安裝文件
3d
-v:: 查看附加信息
-vv: 顯示調試信息
-h::安裝時輸出hash記號
--test:僅用做測試,並不實際安裝。
一般的狀況下,-ivh 一塊兒使用,這樣可以比較清楚的顯示安裝的文件信息。
有的狀況須要從新安裝,怎麼安裝呢?
rpm --replacepkgs 文件路徑
從新安裝時,若是原有的配置文件被修改了,則頗有可能不執行替換, 而是將應該安裝生成的配置文件重命名爲 .rpmnew
2)查詢操做:我以gcc包爲例
查詢全部已經安裝的包: rpm -qa
gcc 是包名,4.4.7是版本號,4.e16是小版本號,x86_64是架構
查詢某個包是否被安裝: rpm -q 包名
查詢某個包的描述信息: rpm -qi 包名
查詢某個包生成了那些配置文件: rpm -qc 包名
查詢某個包生成了那些幫助文件: rpm -qd 包名
查詢與莫個包相關的腳本: rpm -q --scripts 包名
查詢某個文件是由哪一個包生成的: rpm -qf 文件路徑
3)卸載程序包
rpm -e [選項] 包名
選項有:
--test 只執行刪除的測試
--noscripts 不運行預安裝和後安裝腳本程序
--nodeps 不檢查依賴性
沒有加選項 --nodeps 意味着,連同與該包有依賴關係的包一同卸載
4)升級程序包
rpm [選項] 包的路經
升級或安裝 -Uvh
純升級 -Fvh
-F 是強制升級的意思 -v -h 和前面的安裝選項同樣
5)校驗操做,校驗的目的就是查詢包安裝生成的文件屬性是否發生改變。
rpm -V 包名
選項有:
S: 指示文件大小變動
M: 指示文件權限、文件類型變動
5: 指示MD5值變動
D: 指示主/備設備號變動
L: 指示鏈接變動
U: 指示屬主變動
G: 指示屬組變動
T: 指示修改時間變動
其中沒有修改的部分用 . 表示
6)包來源合法性與完整性的校驗,對於系統安全性相當重要
首先你要導入包製做者的公鑰
rpm --import 公鑰路徑
校驗包中的文件:
rpm -K 包文件路徑
其中若是不檢查包的完整性
rpm -K --nodigest
不檢查包的來源合法性
rpm -K --nosignature
--nopgp 不校驗PGP簽名
7)庫重建:首先庫重建的默認目錄爲 /var/lib/rpm
庫重建有兩種狀況:
1 若是原先沒有庫,則創建一個庫,若是有,則不創建新的庫,用命令:
rpm --initdb
2無論原先有沒有庫,都創建一個,有則覆蓋,沒有則新建,使用命令:
rpm --rebuilddb