在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包的依賴性問題解決,將再次單獨說明。
本文出自 “對著陽光微笑著” 博客,請務必保留此出處http://dongld.blog.51cto.com/4234800/1156679