前言
RPM(簡稱RPM,全稱為The RPM Package Manager)是在Linux下廣泛使用的軟件包管理器。RPM此名詞可能是指.rpm的文件格式的軟件包,也可能是指其本身的軟件包管理器(RPM Package Manager)。最早由Red Hat研制,現在也由開源社區開發。RPM通常隨附于Linux發行版,但也有單獨將RPM作為應用軟件發行的發行版(例如Gentoo)。RPM僅適用于安裝用RPM來打包的軟件,目前是GNU/Linux下軟件包資源最豐富的軟件包類型之一。
rpm的命名格式:
name-version-release.arch.rpm
version: major.minor.release,同源代碼
release: rpm自身的發行號,與程序源碼的發行號無關,僅用于標識對rpm包不同制作的修訂;
同時,release還包含此包適用的OS
例如:bash-4.2.3-3.centos5
arch: 適用于的硬件平臺,
x86: i386, i486, i586, i686等;
x86_64: x86_64
powerpc: ppc
noarch: 依賴于虛擬機
示例:bash-4.2.3-3.centos5.x86_64.rpm
獲取rpm包的途徑:
1、發行的光盤或站點服務器
鏡像:
http://mirrors.163.com
http://mirrors.sohu.com
2、項目的官網
源代碼、rpm包
3、很多第三方機構或個人制作并公開發布許多rpm包
http://rpmfind.net
http://rpm.pbone.net
可靠的途徑:EPEL
rpm的命令格式::
rpm [option…] PACKAGE_FILE
rpm包管理器:
1、打包
2、安裝
3、卸載
4、升級
5、信息查看
6、校驗
7、數據庫管理
1、打包
略……
2、安裝
-i:安裝指定包 -{v|vv|vvv}:顯示詳細安裝信息,v字母越多顯示越詳細 -h:顯示進度條 --nodeps:忽略依賴關系 --test:僅做測試,不執行安裝 --replacepkgs:重新安裝
3、卸載
-e:卸載包 --nodeps:忽略依賴關系 如果被其它包所依賴: 1、將依賴于此包的所有包一并卸載 2、忽略依賴關系;能卸載,但依賴于此包程序包可能會運行不正常; 3、如果包的配置文件安裝后曾被改動過,卸載時,此文件將不會卸載,而是被重命名并保留
4、升級
-U:升級或安裝 -F:純升級,前提是得有老版本 --force:強制升級
5、信息查看
-q:查詢包是否已安裝 常用查詢選項組合: -qa:列出所有已安裝的包 -qi:列出某已安裝包的描述信息 -ql:列出某已安裝包生成了哪些文件 -qc:列出某已安裝包生成了哪些配置文件 -qd:列出某已安裝包生成了哪些幫助文件 -qf:/path/to/some_file:查詢某文件是由哪個包生成的 -qs:查詢某已安裝包內文件的狀態,有三種:normal、not installed、replaced -qp:查詢某未安裝包的相關信息 -qpi:列出某未安裝包的描述信息 -qpl:列出某未安裝包生成了哪些文件 -qpc:列出某未安裝包生成了哪些配置文件 -qpd:列出某未安裝包生成了哪些幫助文件 -q --scripts package_name:列出某已安裝包的相關腳本 腳本有四類: preinstall:安裝前腳本 postinstall: 安裝后腳本 preuninstall: 卸載前腳本 postuninstall: 卸載后腳本
6、校驗
包制作者制作完成之后會附加數字簽名于包上;
來源合法性,包的完整性
包的制作者使用單向加密提取原始數據的特征碼,而后使用自己的私鑰加密這段特性碼,附加原始數據后面。
驗正過程:
前提:必須有可靠機制獲取到包制作者的公鑰;
① 使用制作者的公鑰解密加密的特征碼,能解密則意味著來源合法;
② 使用與制作者同樣的意向加密算法提取原始數據的特征碼,并與解密出來的特征作比對,相同,則意味著完整性沒問題;
rpm --import:導入公鑰,導入后即可自動檢查 rpm -qa gpg-pubkey:查看所有已導入的公鑰 rpm -qi gpg-pubkey-NAME:顯示密鑰的詳細信息 rpm --checksig package:手動檢測包的合法性及完整性 rpm -K package:手動檢測包的合法性及完整性 rpm -K --nodigest:不檢查包完整性 rpm -K --nosignature:不檢查來源合法性 rpm -V package_name S file Size differs M Mode differs (includes permissions and file type) 5 digest (formerly MD5 sum) differs D Device major/minor number mismatch L readLink(2) path mismatch U User ownership differs G Group ownership differs T mTime differs P caPabilities differ 某屬性無變化,顯示為.
7、數據庫管理:
路徑:/var/lib/rpm,保存所有包相關信息,如:包名、包組、依賴關系、公鑰文件等
rpm –initdb:初始化,如果沒有庫,會新建一個,如果有則不重建
rpm –rebuiddb:重建
原創文章,作者:秦,如若轉載,請注明出處:http://www.www58058.com/4313