Linux軟件管理 - RPM工具
文本關鍵字:Linux、軟件管理、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