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

2021-02-23 Linux研習社

在上一章我們介紹了使用 rpm 命令安裝、卸載和升級RPM軟體包,在實際的操作過程中,我們還需要使用rpm 命令來對 RPM 軟體包做一些查詢操作,比如:

rpm 查詢命令的格式如下:

$ rpm 選項 包名

一、查詢軟體包是否安裝:-q

用 rpm 命令查詢軟體包是否安裝的命令格式為:

$ rpm -q 包名

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

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

$ rpm -q sudo

image

如果系統中安裝了我們要查詢的軟體,則輸出軟體的包名信息,如果沒有安裝,則告訴我們package is not installed。

這裡查詢的時候,只需要我們輸入包名就可以,並不需要輸入包全名,系統可以自動識別。

二、查詢系統中所有安裝的軟體包:-qa

使用 rpm 查詢 Linux 系統中所有已安裝軟體包的命令格式為:

$ rpm -qa

image

可以看到,會把我們系統中安裝的所有的軟體包輸出。如果我們想要查詢某個包是否安裝,但是記不全包名,那麼可以使用管道符查找,比如我們要查詢包含su的軟體:

$ rpm -qa | grep su

image

執行命令之後,會把軟體名包含su的軟體全部列出來。

三、查詢軟體包的詳細信息:-qi

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

$ rpm -qi sudo

比如我們要查詢sudo軟體的詳細信息:

imageGroup、Source RPM:組和源RPM包文件名四、查詢軟體包的文件列表:-ql

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

$rpm -ql 包名

比如查看sudo軟體包所有文件以及各自的安裝位置:

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

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

$ rpm -qf 系統文件名

注意:只有使用 RPM 包安裝的文件才能使用該命令,手動方式建立的文件無法使用此命令。

比如查詢 ls 命令所屬的軟體包,可以執行如下命令:

rpm -qf /bin/ls

image六、查詢軟體包的依賴關係:-qR

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

$ rpm -qR 包名

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

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

image七、Linux RPM包校驗和數字證書

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

RPM 包校驗:其實就是將已安裝文件和 /var/lib/rpm/目錄下的資料庫內容進行比較,確定文件內容是否被修改。RPM 包數字證書校驗:用來校驗 RPM 包本身是否被修改。1、Linux RPM 包校驗

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

$ rpm -Va  #校驗系統中已安裝的所有軟體包

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

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

2、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

相關焦點

  • rpm和yum的使用,程序包編譯安裝以及編譯apache過程中出現的問題
    查詢/驗證軟體包選項: -a, --all 查詢/驗證所有軟體包 -f, --file 查詢/驗證文件屬於的軟體包 -g, --group 查詢/驗證組中的軟體包 -p, --package
  • Linux如何使用src.rpm
    Linux使用src.rpm方法:rpmbuild --rebuild *.src.rpm  除此之外,Linux作業系統軟體包不僅包括完整的Linux作業系統,而且還包括了文本編輯器、高級語言編譯器等應用軟體。它還包括帶有多個窗口管理器的X-Windows圖形用戶界面,如同使用Windows NT一樣,允許用戶使用窗口、圖標和菜單對系統進行操作。
  • linux下configure命令詳細介紹
    linux下軟體的基本安裝和卸載Linux軟體的安裝和卸載一直是困擾許多新用戶的難題。在Windows中,我們可以使用軟體自帶的安裝卸載程序或在控制面板中的「添加/刪除程序」來實現。與其相類似,在Linux下有一個功能強大的軟體安裝卸載工具,名為RPM。它可以用來建立、安裝、查詢、更新、卸載軟體。該工具是在命令行下使用的。
  • 用linux命令瀏覽網頁:用Wget命令來瀏覽網頁
    用linux命令瀏覽網頁:用Wget命令來瀏覽網頁 以下是在liux模式下用linux命令瀏覽網頁的方法,可以用linux命令:lynx,links瀏覽web,linux命令:lftp,wget,curl等上傳/下載軟體。
  • Linux如何根據文件名找到相應的安裝包?
    repoquery1、根據文件名查找安裝包關鍵字支持通配符,這裡我們查詢結尾為repoquery的文件。查詢執行文件前面加上bin/結果會更準確:除了使用-f還可以使用--whatprovides參數,它提供了跟yum工具的whatprovides操作一樣的功能:有時候可能會查不到結果,此時可以加上--pkgnarrow=all參數,用於指定安裝包的類型,可能的值有installed
  • Linux(八)測試常用命令
    1、系統命令查看主機名:hostname查詢登錄系統的用戶:who
  • Java工程師常用Linux命令大全
    ll -a 顯示當前目錄下所有文件(包括隱藏文件) 查看當前目錄pwd 查看當前路徑 查看進程ps -a 顯示所有進程 ps –u 有效用戶的相關進程 ps -x 列出較完整的信息 ps aux 查詢系統所有進程數據 ps -ef | grep java 表示查看所有進程裡 CMD 是 java 的進程信息
  • Linux 常用命令及使用方法
    type:查詢命令 是否屬於shell解釋器2. help : 幫助命令3. man : 為所有用戶提供在線幫助4. ls : 列表顯示目錄內的文件及目錄-l 以長格式顯示文件和目錄的列表-a 顯示所有子目錄和文件的信息-A 與-a基本類似,但有兩個特殊的隱藏目錄『.』和'..'
  • Linux下軟體安裝方法
    二、Rpm軟體包管理:Rpm是centos下的軟體管理機制,那麼rpm軟體安裝方式有什麼特點呢?Rpm特點:rpm包將你安裝的軟體預先編譯過,並且打包成rpm的安裝包,這個軟體安裝時所有的屬性依賴軟體都會被記錄在包裝好的默認資料庫裡,安裝時rpm會依照軟體裡的數據查詢linux主機的依賴屬性是否滿足。以此來判斷是否可以安裝該軟體。
  • LINUX常用100條命令總結(三)
    功能:RPM軟體包管理器rpm命令包含了五種基本功能:安裝、卸載、升級、查詢和驗證。語法:rpm [參數] [軟體包]參數:-a 查詢所有的軟體包-b或-t 設置包裝套件的完成階段,並指定套件檔的文件名稱;-c 只列出組態配置文件,本參數需配合」-l」參數使用-d 只列出文本文件,本參數需配合」-l」參數使用-e或--erase 卸載軟體包
  • Linux 命令匯總
    命令功能說明線上查詢及幫助命令 (2 個)man查看命令幫助,命令的詞典,更複雜的還有 info,但不常用。help查看 Linux 內置命令的幫助,比如 cd 命令。文件和目錄操作命令 (18 個)ls全拼 list,功能是列出目錄的內容及其內容屬性信息。
  • linux系統中,whois工具的使用詳解
    我們知道,在linux系統下,whois命令是用來查找並顯示指定帳號(或域名)的用戶相關信息,whois安裝jwhois服務才能正常使用,本文以cantos為例,給各位講解whois的知識!一、安裝1、檢查系統是否安裝whois工具rpm -qa |grep whois2、安裝whois工具,可以選擇wget、yum和rpm包的方式安裝,根據自己習慣的方式安裝即可。
  • linux常用命令總結
    Linux常用命令查詢一文件目錄操作二 查看文件內容三 文本內容處理命令也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令# which lsalias ls='ls --color=auto'/bin/ls# which zs/
  • 1000+個常用的Linux命令!
    刪除用戶刪除userbdc用戶以及與此用戶相關的所有文件。在Linux中我們可以使用ll或者ls –l命令來顯示一個文件的屬性以及文件所屬的用戶和組。RPM包的名稱格式Apache-1.3.23-11.i386.rpm- 「apache」 軟體名稱- 「1.3.23-11」軟體的版本號,主版本和此版本- 「i386」是軟體所運行的硬體平臺- 「rpm」文件擴展名,代表RPM包查詢命令查詢所安裝的所有rpm軟體包由於軟體包比較多
  • Linux常用命令:nslookup,lsmd5sum,uname,history等
    此時需要找到哪個軟體包提供這個命令。利用yum provides */nslookup就可以找出所需要的軟體包了。知道了軟體包,則使用yum install -y bind-utils安裝即可。查詢 DNS 域的名稱伺服器信息:
  • Linux 下軟體安裝詳解
    更多的內容可以參考RPM的命令幫助。     3.卸載軟體     # rpm -e 軟體名     需要說明的是,上面代碼中使用的是軟體名,而不是軟體包名。.-1.i386.rpm這個包時,應執行:    #rpm -e software     4.強行卸載RPM包    有時除去一個RPM是不行的,尤其是系統上有別的程序依賴於它的時候。
  • CentOS Linux系統中查找命令屬於哪個安裝包
    CentOS Linux學習筆記總結(八十二)- CentOS Linux系統中查找命令屬於哪個安裝包我們在使用命令時不怎麼關心命令屬於哪個安裝包,但是如果我們要安裝某個命令軟體時需要知道包名,這樣我們在yum安裝的時候才行,如果沒有名字我們將無法安裝這個軟體
  • Linux一句話精彩問答,綻放系統工程師集體智慧
    /找到補丁,6.1以後的版本帶有一個工具up2date,它能夠測定哪些rpm包需要升級,然後自動從redhat的站點下載並完成安裝。升級除kernel外的rpm: up2date –u升級包括kernel在內的rpm: up2date -u –f最新的redhat和fedora可以使用yum命令或者yumex圖形前端來升級更新。
  • rpm是什麼單位
    汽車儀錶盤上有RPM一串英文字母,那麼,rpm是什麼單位?操作方法01rpm是轉速的意思05轉速用符號"n"表示;其國際標準單位為rps (轉/秒)或 rpm (轉/分),也有表示為RPM (轉/分 ,主要為日本和歐洲採用,我國採用國際標準)。
  • Linux運維中比較常見命令及參數
    字符串 在文本中從下至上搜索該字符串n 顯示搜索命令定位到的下一個字符串N 顯示搜索命令定位到的上一個字符串U 撤銷上一步操作vim 編輯器的末行模式中的常用命令