在上一章咱們介紹了使用 rpm
命令安裝、卸載和升級RPM軟件包,在實際的操做過程當中,咱們還須要使用rpm 命令來對 RPM 軟件包作一些查詢操做,好比:數據庫
rpm
查詢命令的格式以下:centos
$ rpm 選項 包名
-q
用 rpm
命令查詢軟件包是否安裝的命令格式爲:併發
$ rpm -q 包名
-q
的英文單詞是 query
,表示查詢的意思。學習
好比我須要查看Linux 系統中是否安裝sudo
,則rpm 查詢命令應寫成:ui
$ rpm -q sudo
若是系統中安裝了咱們要查詢的軟件,則書輸出軟件的包名信息,若是沒有安裝,則告訴咱們package is not installed
。spa
這裏查詢的時候,只須要咱們輸入包名就能夠,並不須要輸入包全名,系統能夠自動識別。code
-qa
使用 rpm
查詢 Linux 系統中全部已安裝軟件包的命令格式爲:blog
$ rpm -qa
能夠看到,會把咱們系統中安裝的全部的軟件包輸出。若是咱們想要查詢某個包是否安裝,可是記不全包名,那麼可使用管道符查找,好比咱們要查詢包含su
的軟件:ip
$ rpm -qa | grep su
執行命令以後,會把軟件名包含su
的軟件所有列出來。rem
-qi
使用 rpm
命令查詢軟件包的詳細信息,命令格式以下:
$ rpm -qi sudo
好比咱們要查詢sudo
軟件的詳細信息:
Name
:包名Version
:版本號Release
:發行版本Install Date
:安裝時間Group
、Source RPM
:組和源RPM包文件名Signature
:數字簽名Summary
:軟件包說明Description
:軟件詳細描述Packager
、URL
:廠商以及地址-ql
在上一章學習RPM軟件安裝的時候有提到過,rpm 軟件包一般採用默認路徑安裝,各安裝文件會分門別類安放在指定的目錄文件下。使用 rpm 命令能夠查詢到已安裝軟件包中包含的全部文件及各自安裝路徑,命令格式爲:
$rpm -ql 包名
好比查看sudo
軟件包全部文件以及各自的安裝位置:
-qf
查詢某系統文件所屬哪一個 RPM 軟件包。其命令格式以下:
$ rpm -qf 系統文件名
注意:只有使用 RPM 包安裝的文件才能使用該命令,手動方式創建的文件沒法使用此命令。
好比查詢 ls 命令所屬的軟件包,能夠執行以下命令:
rpm -qf /bin/ls
-qR
使用 rpm 命令安裝 RPM 包,有時候咱們需考慮與其餘 RPM 包的依賴關係。可使用命令來查詢某已安裝軟件包依賴的其餘包,該命令的格式爲:
$ rpm -qR 包名
-R(大寫)選項的含義是查詢軟件包的依賴性,是 requires 的首字母。
好比,查詢sudo
軟件包的依賴性,可執行如下命令:
在前面咱們執行 rpm -qa
命令的時候,能夠發現Linux系統中裝有大量的RPM 包,且每一個包都含有大量的安裝文件。所以,爲了可以及時發現文件誤刪、誤修改文件數據、惡意篡改文件內容等問題,Linux 提供瞭如下兩種檢測方式:
/var/lib/rpm/
目錄下的數據庫內容進行比較,肯定文件內容是否被修改。RPM 包校驗可用來判斷已安裝的軟件包(或文件)是否被修改,此方式可以使用的命令格式分爲如下 3 種。
$ rpm -Va
#校驗系統中已安裝的全部軟件包
$ rpm -V 已安裝的包名
#校驗指定 RPM 包中的文件
$ rpm -Vf 系統文件名
#校驗某個系統文件是否被修改
上述RPM包校驗方法只能用來校驗已安裝的RPM包及其文件,若是RPM包自己就被篡改過,使用該方法就沒法有效校驗了,所以須要使用第二種方法: RPM 數字證書驗證方法。
數字證書,又稱數字簽名,由軟件商直接發佈。Linux 系統安裝數字證書後,若 RPM 包作了修改,此包攜帶的數字證書也會改變,將沒法與系統成功匹配,軟件沒法安裝。
使用數字證書驗證RPM包:
數字證書默認會放到系統中/etc/pki/rpm-gpg/
位置:
安裝數字證書:
$ rpm --import RPM-GPG-KEY-centos*
數字證書安裝完成後,可以使用以下命令進行驗證:
$ rpm -qa|grep gpg-pubkey
能夠看到,數字證書已成功安裝。在裝有數字證書的系統上安裝 RPM 包時,系統會自動驗證包的數字證書,驗證經過則能夠安裝,反之將沒法安裝。
既然能夠按照證書,一樣也能卸載數字證書,由於數字證書自己也是一個RPM包,所以可使用 rpm -e
卸載:
$ rpm -e gpg-pubkey-5ba5fa8d-5ccc6012