CentOS軟件管理 - RPM工具

寫在前面:博主是一隻經過實戰開發歷練後投身培訓事業的“小山豬”,暱稱取自動畫片《獅子王》中的“彭彭”,總是以樂觀、積極的心態對待周邊的事物。本人的技術路線從Java全棧工程師一路奔向大數據開發、數據挖掘領域,如今終有小成,願將昔日所獲與大家交流一二,希望對學習路上的你有所助益。同時,博主也想通過此次嘗試打造一個完善的技術圖書館,任何與文章技術點有關的異常、錯誤、注意事項均會在末尾列出,歡迎大家通過各種方式提供素材。

  • 對於文章中出現的任何錯誤請大家批評指出,一定及時修改。
  • 有任何想要討論和學習的問題可聯繫我:[email protected]
  • 發佈文章的風格因專欄而異,均自成體系,不足之處請大家指正。

CentOS軟件管理 - RPM工具

本文關鍵字:Linux、CentOS、軟件管理、RPM工具、軟件依賴

一、RPM介紹

1. RPM含義

RPM的全稱是:Red Hat Package Manager,是RPM軟件包管理器。在Linux系統中對應命令是rpm,我們看到名稱中含有Red Hat,也就說明主要是在Red Hat發行版中使用的,除此之外還包括和Red Hat最親近的CentOS,以及其他一些主流發行版:SuSE、Fedora等。

2. RPM特點

  • rpm也是一種打包格式,使用rpm工具來進行管理
  • rpm包是預先已經編譯並打包的文件,安裝較爲方便
  • 存在rpm相關的數據庫,記錄各軟件間的依賴關係
  • 如果缺少相關依賴,則無法正常安裝或無法正常運行
  • 如果逐一尋找依賴,在尋找過程中可能還有依賴關係,將會變成噩夢
  • 可以用yum工具解決rpm依賴問題,在後續文章中介紹

3. 軟件包名稱

  • vim:軟件名稱部分
  • enhanced:軟件組件部分
  • 7:主版本號
  • 4:次版本號
  • 629:修訂號
  • 5:發佈次數
  • el6_10.2:平臺名稱,表示適用於哪種發行版
  • x86_64:系統位數,i386等表示適用於32位,x86_64表示適用於64位,noarch表示通用

二、常用命令

1. 查詢

在進行軟件查詢時,適用rpm工具只能查詢到以rpm軟件包形式安裝的軟件信息,解壓和編譯安裝的軟件無法查詢到信息。

  • q:query的簡寫

(1)查詢已安裝的軟件信息

  • rpm -q 準確軟件名稱:查詢某一個已安裝軟件

  • rpm -qa:顯示已安裝的所有軟件列表

  • rpm -qi 準確軟件名稱:查詢指定安裝軟件的詳細信息

在這裏插入圖片描述

  • rpm -ql 準確軟件名稱:查看指定的軟件包在系統中對應的目錄和文件列表

  • rpm -qf 目錄或文件夾:查看當前指定的文件或目錄對應的軟件包

  • 不確定具體名稱時可以使用管道和篩選功能:rpm -qa|grep vim

在這裏插入圖片描述

  • 統計已安裝的軟件包總數:rpm -qa|wc -l


(2)查詢未安裝的軟件信息
該操作主要是在軟件包安裝之前進行詳細信息的查詢,所以傳入的參數是一個存在的軟件包的路徑。

  • rpm -qpi 軟件包完整路徑:查詢待安裝軟件的詳細信息

在這裏插入圖片描述

  • rpm -qpl 軟件包完整路徑:查詢待安裝軟件的安裝路徑

2. 驗證

使用-V可以驗證軟件包的正確性。

  • V:verify的簡寫

(1)常用命令

  • rpm -V 準確軟件名稱:只有校驗失敗時纔會出現信息
  • rpm -Va:掃描驗證所有軟件包(推薦使用root用戶,不會出現權限問題),列出產生變更的項目、欠佳的依賴關係、缺失的關鍵配置文件等

在這裏插入圖片描述
(2)信息標識

校驗信息的後半部分顯示對應的目錄或文件,前半部分用大寫字母表示產生變動的項目。

  • S:大小改變
  • M:權限改變
  • 5:MD5改變
  • L:鏈接改變
  • D:設備改變
  • U:屬主改變
  • G:數組改變
  • T:修改時間改變

3. 卸載

軟件包的卸載需要使用root用戶來執行,必須完整提供卸載軟件包的名稱,可以先通過篩選查詢獲取。

  • e:erase的簡寫(擦除)

在進行卸載操作時,可能有其他軟件依賴於此軟件,卸載後可能會導致其他軟件不可用,如果存在依賴關係,則會顯示依賴信息,如果執意要刪除,可以使用忽略依賴的選項:–nodeps。

  • rpm -e [–nodeps] 準確軟件名稱:卸載一個已安裝軟件,忽略依賴爲可選項
rpm -e --nodeps vim-enhanced

4. 安裝

軟件包的安裝需要使用root用戶來執行,安裝前一般會先查詢已安裝的相關軟件,並卸載與之衝突的軟件。

  • i:install的簡寫

在進行軟件安裝時,可能系統當中缺少某個依賴,導致無法正常安裝,可以使用–force選項進行強制安裝,但無法保證安裝後能夠正常使用。常規的解決辦法是先安裝需要的依賴軟件包,再安裝該軟件,或者使用yum工具。

  • rpm -i [–force] 軟件包完整路徑:安裝一個軟件,強制安裝爲可選項
  • rpm -ivh 軟件包完整路徑:常用命令,安裝一個軟件,顯示詳細信息和進度(用#表示)

5. 升級

與安裝類似,使用root用戶操作來操作,升級某一軟件。

  • U:update的簡寫
  • F:freshen的簡寫

由於在升級時,舊版本的軟件可能已經安裝,也可能從未安裝,針對這種情況,提供了兩個參數。

  • U表示:如果對應的軟件包原來未安裝,則直接安裝,和i的效果相同

  • F表示:如果對應的軟件包原來未安裝,則放棄安裝

  • rpm -U/F 軟件包完整路徑:升級一個軟件

6. 維護

(1)RPM數據庫維護
如果本機的RPM數據庫損壞,可能會導致無法正確的讀取依賴關係,致使無法正常執行rpm相關功能,此時可以使用-‌-initdb選項。

rpm --initdb

(2)簽名驗證
當下載了一個軟件後,如果我們無法確保它的來源,以及是否被篡改,則需要使用相應的GPG文件。一般在光盤鏡像、網絡鏡像中都可以找到該文件,使用-‌-import命令導入,在安裝軟件時會自動生效。

rpm --import /mnt/cdrom/RPM-GPG-KEY-CentOS-6
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章