一、概述
RPM 是RPM Package Manager(RPM軟件包管理器)的縮寫。由redhat公司的Redhat package manager改名而來,成了RedHat的工業標準
二、rpm的命名格式:
rpm包的命名格式:name-version-relase.arch.rpm
version: major.minor.release,同源代碼
release: rpm自身的發行號,與程序源碼的發行號無關,僅用于標識對rpm包不同制作的修訂;同時,release還包含此包適用的OS
如:
arch: 適用于的硬件平臺,
x86: i386, i486, i586, i686等;
x86_64: x86_64
powerpc: ppc
noarch: 依賴于虛擬機
rubygems-1.3.7-5.el6.noarch.rpm
以下是子包
rubygems-devel-1.3.7-5.el6.noarch.rpm
三、獲取rpm包的途徑:
1、發行的光盤或站點服務器
鏡像:
http://mirrors.163.com
http://mirrors.sohu.com
2、項目的官網
源代碼
rpm包
3、第三方機構或個人的制作并公開發布的rpm包
http://rpmfind.net
http://rpm.pbone.net
4、可靠途徑:EPEL
fedora 維護的:Fedora-EPEL
四、合法性驗證
包的制作者使用單向加密提取原始數據的特征碼,而后使用自己的私鑰加密這段特征碼,附加原始數據后面。
驗證過程:
前提:必須有可靠機制獲取到包制作者的公鑰;
1、使用制作者的公鑰解密加密的特征碼,能解密則意味著來源合法;
2、使用與制作者同樣的意向加密算法提取原始數據的特征碼,并與解密出來的特征作比對,相同,則意味著完整性沒問題;
五、包管理器的使用
1、安裝及重新安裝
rpm [option] package_file
-i:install -v|vv|vvv : 詳細信息|更詳細|再詳細 -h;hash,用#來表示進度,每個5% --test: 僅作測試,沒有真正執行安裝 --nodeps: 忽略依賴關系 --replacepkgs:重新安裝 (如果包的配置文件安裝后曾被改動過,卸載時,此文件將不會卸載,而是被重命名并保留)
2、卸載
rpm [option] package_name
-e: erase --nodeps: 忽略依賴關系
3、升級程序包
rpm [option] package_file
-U:升級或安裝 :有老版本,替換,沒有就安裝。 -F:純升級:一定要有有老版本,才會安裝新版本 --force: 強制升級
注意:不應該對內核執行升級操作,而是安裝。系統允許多內核并存;
升級完后新內核不支持??赡軉硬涣?。
安裝后新內核不能用,還可以啟用老版本。
4、查詢操作
rpm -q package_name : 查詢包是否安裝 rpm -qa : 查詢所有已經安裝的包 rpm -qi package_name: 查詢包的描述信息 rpm -ql package_name: 查詢包生成了哪些文件 rpm -qc package_name: 查詢包安裝生成了哪些配置文件 rpm -qd package_name: 查詢包安裝生成了哪些幫助文檔 rpm -q --scripts package_name: 查詢包的相關腳本(安裝及卸載前后四類腳本) rpm -qf some_file: 查詢文件是由哪個包安裝生成
對尚未安裝的包執行查詢
rpm -qpi :將會生成的描述信息 rpm -qpl :將會生成的文件 rpm -qpc :將會生成的配置文件 rpm -qpd :將會生成的幫助文檔
5、rpm包來源合法性及完整性校驗:
系統上需要有包制作者的公鑰:比如導入光盤上的公鑰
rpm --import package_file 導入公鑰 rpm -qa gpg-pubkey* 查看導入的公鑰 rpm -qi gpg-pubkey-NAME 查看公鑰的詳細信息
檢查包的完整性:安裝過程中自動執行
rpm -K package_file 只檢查不安裝 rpm --checksig package_file 只檢查不安裝 rpm -K --nodigest 不檢查包完整性 rpm -K --nosignature 不檢查來源合法性
6、數據庫重建
數據庫目錄: /var/lib/rpm
rpm --initdb:初始化 如果事先沒有庫,會新建一個;如果有,則不新建 rpm --rebuilddb:重建 直接重建,覆蓋原有的數據庫
原創文章,作者:麥鯨,如若轉載,請注明出處:http://www.www58058.com/8597