一 前言
在進入RPM的應用前,關于可執行程序的一些基本知識有必要說明一下:
1 ABI:application binary interface,這是應用程序與系統間的協議,大家都知道同一個程序在不同的操作系統平臺可能會無法執行,很大程度上就是因為ABI的不同,因此,對于可執行程序,選擇對應操作系統平臺是第一步
2 API:application programming interface,這個概念很重要,如何理解呢?拋開那些復雜的概念的不說,程序的運行并不是孤立的,運行過程中需要調用能實現各種功能的庫(函數)文件,否則無法保證程序的正常運行(有興趣的朋友可以試試#rm -f /lib64/libc.so.6),所以在程序安裝前,得保證相應的庫文件已準備完畢
3 軟件結構:通常一個完善的二進制應用程序應該包括四個部分(二進制文件,庫文件,配置文件,幫助文件 )
二 RPM應用場景
在軟件安裝的工具選擇中,RPM因為軟件依賴性的存在使得很多軟件的安裝過于復雜,通常對于RPM包的安裝選擇YUM會比較簡單粗暴(YUM會自動解決依賴性問題),在此不介紹RPM的安裝。RPM工具的使用更多是在查詢,校驗,抽取文件等等方面
1. 查詢: RPM的查詢基于軟件包的數據庫/var/lib/rpm,這個數據庫很重要,一旦遭到破壞會影響整個 RPM的管理;查詢的相關命令如下:
rpm -q pkgname(包名):查詢RPM包是否被安裝
-qa 查詢所有已安裝的RPM包,結合grep可用來獲取想要查詢的信息;也可以使用rpm -qa “keyword”的形式查詢某些關鍵字相關的結果
-qf /path/to/file 查詢某文來源于哪個包
-ql pkgname 查詢已安裝包在系統中的文件列表
-qpl /path/to/file 查詢未安裝包的文件列表
-qc pkgname 查詢相關包配置文件
2. 校驗:RPM提供校驗功能,可查看文件是否被修改過,以保證系統安全(特別針對于被改過的可執行 文件);校驗結果是比對當前包與RPM數據庫(RPM數據庫的重要性?。┑贸龅慕Y果
rpm -V pkgname
校驗結果為SM5DLUGTP:被修改后顯示對應字母(每個字母表示特定內容)被修改,無改動顯示為點 號”.”
3. 驗證包來源合法性與完整性,驗證前需要先導入公鑰——安裝系統時/etc/pki/rpm-gpg下會生成
導入公鑰:rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
rpm -K /path/to/file
4. 包內文件查看并提?。簉pm2cpio -tv /path/to/rpmpkgs | cpio -id ./path/to/file
PS:-tv為查看rpm包內的文件,路徑必須為完整路徑 -id為提取某文件,提取的文件路徑必須完整
原創文章,作者:sevenyellow,如若轉載,請注明出處:http://www.www58058.com/73576
主要介紹了rpm命令常用的幾個參數,內容總結的很好,建議插入一些示例和執行的結果,并將終端提示符類的命令或代碼放入到”插入程序代碼”中