Linux rpm查詢命令以及RPM包驗證

在上一章咱們介紹了使用 rpm 命令安裝、卸載和升級RPM軟件包,在實際的操做過程當中,咱們還須要使用rpm 命令來對 RPM 軟件包作一些查詢操做,好比:數據庫

  • 查詢軟件包是否已安裝
  • 查詢系統中全部已安裝的軟件包
  • 查看軟件包的詳細信息
  • 查詢軟件包的文件列表
  • 查詢某系統文件具體屬於哪一個 RPM 包

rpm 查詢命令的格式以下:centos

$ rpm 選項 包名

1、查詢軟件包是否安裝:-q

rpm 命令查詢軟件包是否安裝的命令格式爲:併發

$ rpm -q 包名

-q 的英文單詞是 query,表示查詢的意思。學習

好比我須要查看Linux 系統中是否安裝sudo,則rpm 查詢命令應寫成:ui

$ rpm -q sudo

image

若是系統中安裝了咱們要查詢的軟件,則書輸出軟件的包名信息,若是沒有安裝,則告訴咱們package is not installedspa

這裏查詢的時候,只須要咱們輸入包名就能夠,並不須要輸入包全名,系統能夠自動識別。code

2、查詢系統中全部安裝的軟件包:-qa

使用 rpm 查詢 Linux 系統中全部已安裝軟件包的命令格式爲:blog

$ rpm -qa

image

能夠看到,會把咱們系統中安裝的全部的軟件包輸出。若是咱們想要查詢某個包是否安裝,可是記不全包名,那麼可使用管道符查找,好比咱們要查詢包含su的軟件:ip

$ rpm -qa | grep su

image

執行命令以後,會把軟件名包含su的軟件所有列出來。rem

3、查詢軟件包的詳細信息:-qi

使用 rpm 命令查詢軟件包的詳細信息,命令格式以下:

$ rpm -qi sudo

好比咱們要查詢sudo軟件的詳細信息:

image

  • Name:包名
  • Version:版本號
  • Release:發行版本
  • Install Date:安裝時間
  • GroupSource RPM:組和源RPM包文件名
  • Signature:數字簽名
  • Summary:軟件包說明
  • Description:軟件詳細描述
  • PackagerURL:廠商以及地址

4、查詢軟件包的文件列表:-ql

在上一章學習RPM軟件安裝的時候有提到過,rpm 軟件包一般採用默認路徑安裝,各安裝文件會分門別類安放在指定的目錄文件下。使用 rpm 命令能夠查詢到已安裝軟件包中包含的全部文件及各自安裝路徑,命令格式爲:

$rpm -ql 包名

好比查看sudo軟件包全部文件以及各自的安裝位置:

image

5、查詢系統文件屬於哪一個RPM包:-qf

查詢某系統文件所屬哪一個 RPM 軟件包。其命令格式以下:

$ rpm -qf 系統文件名
注意:只有使用 RPM 包安裝的文件才能使用該命令,手動方式創建的文件沒法使用此命令。

好比查詢 ls 命令所屬的軟件包,能夠執行以下命令:

rpm -qf /bin/ls

image

6、查詢軟件包的依賴關係:-qR

使用 rpm 命令安裝 RPM 包,有時候咱們需考慮與其餘 RPM 包的依賴關係。可使用命令來查詢某已安裝軟件包依賴的其餘包,該命令的格式爲:

$ rpm -qR 包名

-R(大寫)選項的含義是查詢軟件包的依賴性,是 requires 的首字母。

好比,查詢sudo軟件包的依賴性,可執行如下命令:

image

7、Linux RPM包校驗和數字證書

在前面咱們執行 rpm -qa 命令的時候,能夠發現Linux系統中裝有大量的RPM 包,且每一個包都含有大量的安裝文件。所以,爲了可以及時發現文件誤刪、誤修改文件數據、惡意篡改文件內容等問題,Linux 提供瞭如下兩種檢測方式:

  • RPM 包校驗:其實就是將已安裝文件和 /var/lib/rpm/目錄下的數據庫內容進行比較,肯定文件內容是否被修改。
  • RPM 包數字證書校驗:用來校驗 RPM 包自己是否被修改。
一、Linux RPM 包校驗

RPM 包校驗可用來判斷已安裝的軟件包(或文件)是否被修改,此方式可以使用的命令格式分爲如下 3 種。

$ rpm -Va #校驗系統中已安裝的全部軟件包

$ rpm -V 已安裝的包名 #校驗指定 RPM 包中的文件

$ rpm -Vf 系統文件名 #校驗某個系統文件是否被修改

二、Linux RPM數字證書驗證

上述RPM包校驗方法只能用來校驗已安裝的RPM包及其文件,若是RPM包自己就被篡改過,使用該方法就沒法有效校驗了,所以須要使用第二種方法: RPM 數字證書驗證方法。

數字證書,又稱數字簽名,由軟件商直接發佈。Linux 系統安裝數字證書後,若 RPM 包作了修改,此包攜帶的數字證書也會改變,將沒法與系統成功匹配,軟件沒法安裝。

使用數字證書驗證RPM包:

  • 必須找到原廠的公鑰文件,而後才能進行安裝。
  • 安裝 RPM 包會提取 RPM 包中的證書信息,而後和本機安裝的原廠證書進行驗證。若是驗證經過,則容許安裝;若是驗證不經過,則不容許安裝併發出警告。

數字證書默認會放到系統中/etc/pki/rpm-gpg/位置:

image

安裝數字證書:

$ rpm --import RPM-GPG-KEY-centos*

數字證書安裝完成後,可以使用以下命令進行驗證:

$ rpm -qa|grep gpg-pubkey

image

能夠看到,數字證書已成功安裝。在裝有數字證書的系統上安裝 RPM 包時,系統會自動驗證包的數字證書,驗證經過則能夠安裝,反之將沒法安裝。

既然能夠按照證書,一樣也能卸載數字證書,由於數字證書自己也是一個RPM包,所以可使用 rpm -e 卸載:

$ rpm -e gpg-pubkey-5ba5fa8d-5ccc6012

image

相關文章
相關標籤/搜索