在Linux作業系統中,有一個系統軟體包,它就是Red Hat Package Manager(簡稱RPM)。此工具包最先是由Red Hat公司推出的,後來被其他Linux開發商所借用。由于它為Linux使用者省去了很多時間,是以被廣泛應用于在Linux下安裝、删除軟體。
軟體包管理的核心功能:
1、制作軟體包;
2、安裝、解除安裝、更新、查詢、校驗;
下面,我們具體說一下rpm包的使用方法
rpm指令:
rpm:管理軟體包。(其資料庫在/var/lib/rpm檔案中)
rpmbuild:建立軟體包。
rpm包的管理:
完成安裝、查詢、解除安裝、更新、校驗、資料庫的重建、驗證資料包等工作;
安裝:
rpm -i|--install /path/to/PACKAGE_FILE
-h:以#号顯示安裝進度:每個#表示2%
-v:顯示詳細過程
-vv:更詳細的過程
rpm -ivh /path/to/PACKAGE_FILE
--nodeps:忽略依賴關系;
--replacepkgs:重新安裝,替換原有安裝;
--oldpackage:版本降級
--force:強行安裝,可以實作重裝或降級
--test:測試是否安裝

查詢:
rpm -q PACKGE_NAME 查詢指定的包是否已經安裝
例: # rpm -q bind
rpm -qa :查詢已經安裝的所有包
例: # rpm -qa | grep "^z" 查詢所有以z開頭的軟體包
rpm -qi PACKAGE_NAME:查詢指定軟體包的說明資訊
rpm -ql PACKAGE_NAME:查詢指定包安裝後生成的檔案清單
rpm -qc PACKAGE_NAME:查詢指定包安裝的配置檔案
rpm -qd PACKAGE_NAME:查詢指定包安裝的幫助檔案
rpm -q --scripts PACKAGE_NAME:查詢指定包中包含的腳本
rpm -qf /path/to/somefile :查詢指定的檔案是由那個rpm包安裝生成的
如果軟體包尚未安裝,我們需要查詢其說明資訊、安裝以後會生成的檔案;
rpm -qpi /path/to/PACKAGE_FILE 未安裝時檢視說明資訊
rpm -qpl /path/to/PACKAGE_FILE 未安裝時檢視安裝後會生成的檔案
更新:
rpm -Uvh /path/to/NEW_PACKAGE_NAME 如果裝有老版本的,則更新;否則,安裝
rpm -Fvh /path/to/NEW_PACKAGE_FILE 如果裝有老版本的,則更新;否則,退出
--oldpackage:降級
解除安裝:
rpm -e PACKAGE_NAME
--nodeps 忽略有依賴關系的
例:# rpm -e zlib
校驗:
rpm -V PACKAGE_NAME 檢視檔案是否被改動
例: # rpm -V zlib
重建資料庫:
在/var/lib/rpm/檔案中
rpm
--rebuilddb:重建資料庫 (一定會重建立立資料庫)
--initdb:初始化資料庫 (沒有才建立,有不用建立)
檢驗來源合法性,及軟體包完整性:
rpm包:先單向加密取出其MD5碼,啟用自己的私鑰加密
公鑰使用同樣的加密算法解密,對比MD5碼是否一緻。
/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release (公鑰所在檔案)
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
(公鑰導入)
# rpm -K /PATH/TO/PACKAGE_FILE
dsa, gpg:驗證來源合法性,也即驗證簽名。可以使用--nosignature,略過此項。
sha1,md5:驗證軟體包完整性。可以使用--nodigest,略過此項。
至于rpm包的依賴性問題解決,将再次單獨說明。