1.什麼是RPM
RPM Package Manager(RPM)是一個開放式的包管理系統,它既可以運作于RHEL系統,也可以運作于其他Linux或Unix系統。
1.1 RPM包的命名方式一般為:
zip-3.0-1.el6.i686.rpm
package name zip
version 3.0
release 1
major version el6
CPU architecture i686
2.安裝,更新,重新整理和解除安裝
rpm {-i|--install} [install-options] PACKAGE_FILE ...
安裝一個包
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
更新一個包到最新的版本,或者安裝一個包
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
重新整理一個包到最新版本,同-U,但包必須先被安裝在系統上才會執行
rpm -Fvh *.rpm 更新所有已經安裝的包
2.1 安裝時加入-v可以獲得更多資訊,加入-h使用哈希符号顯示進度表,是以它們組合起來是這樣的
[[email protected] ~]# rpm -Uvh createrepo-0.9.9-18.el6.noarch.rpm
warning: createrepo-0.9.9-18.el6.noarch.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:createrepo ########################################### [100%]
notice:Linux提供了兩個可以安裝包的選項(-U & -i),-U選項包含了安裝和更新,是以推薦使用-U選項,但
在安裝核心時,請使用-i選項,因為-U更新完成後會删除舊核心,如果更新完成之後的核心無法使用則會造成系統故障
未解決的依賴關系
RPM安裝包有時會依賴于其它安裝包,這時需要被依賴包安裝才能正确運作
列如:
[[email protected] ~]# rpm -Uvh nginx-1.0.15-12.el6.i686.rpm
warning: nginx-1.0.15-12.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
error: Failed dependencies:
GeoIP is needed by nginx-1.0.15-12.el6.i686
gd is needed by nginx-1.0.15-12.el6.i686
libGeoIP.so.1 is needed by nginx-1.0.15-12.el6.i686
libgd.so.2 is needed by nginx-1.0.15-12.el6.i686
nginx-filesystem is needed by nginx-1.0.15-12.el6.i686
nginx-filesystem = 1.0.15-12.el6 is needed by nginx-1.0.15-12.el6.i686
notice:如果想nginx包安裝,這時有兩個方法:
方法1:
安裝對應的RPM包,解決依賴關系
方法2:
使用--nodeps選項忽略依賴關系(雖然可以安裝,但可能導緻程式運作不正常)
rpm -Uvh --nodeps nginx-1.0.15-12.el6.i686.rpm
配置檔案被更改
當您更新一個包時,可能會出現一下的資訊,
saving /etc/ntp.conf as /etc/ntp.conf.rpmsave
這是因為您對舊版本程式配置檔案修改不能被新版本相容,是以RPM儲存了之前修改的檔案,并
安裝了一個新的
2.2 解除安裝
rpm -e nginx
#解除安裝時使用包名,而不是包的全部名稱
3.查詢,校驗及RPM資料庫管理
rpm {-q|--query} [select-options] [query-options]
-q <Package_Name> 對某包進行查詢
-p <Package_Name> 對未安裝的包進行查詢
-a 在所有已被安裝的包中查詢
-f <File_Name> 查詢檔案被哪個包擁有
下列選項用于選擇指定查詢哪些資訊
-i 顯示某包的詳細資訊
-l 顯示某包中的所有檔案
-d 顯示某包的說明文檔
-c 顯示某包的配置檔案
例:
rpm -qpi <Package_File> 查詢一個尚未安裝包的詳細資訊
rpm -ql <Package_Name> 查詢某個已被安裝包生成的檔案清單
3.1 校驗
rpm -V <package_name>
用于檢查安裝生成的檔案屬性是否發生變化,主要描述有
5 MD5檢查
S 檔案大小
L 符号連結
T 檔案修改時間
D 裝置
U 使用者
G 組
M 權限
? 不可了解檔案(檔案權限錯誤)
. 沒有發生改變
3.2 檢查包的數字簽名
校驗RPM包必須先要導入GunPG key
[r[email protected] ~]# rpm --import /media/cdrom/RPM-GPG-KEY-CentOS-6
顯示所有已經導入的GunPG key
[[email protected] ~]# rpm -qa gpg-pubkey*
gpg-pubkey-c105b9de-4e0fd3a3
想要顯示key的詳細資訊
[[email protected] ~]# rpm -qi gpg-pubkey-c105b9de-4e0fd3a3
對包進行數字簽名檢查
[[email protected] Packages]# rpm -K zip-3.0-1.el6.i686.rpm
zip-3.0-1.el6.i686.rpm: rsa sha1 (md5) pgp md5 OK
3.3 RPM資料庫管理
RPM所有查詢功能都是基于資料庫的
#資料庫目錄為/var/lib/rpm
rpm --initdb #初始化,如果沒有則建立,有則不執行
rpm --rebuilddb #資料庫重建,覆寫原有
參考文檔:
Red_Hat_Enterprise_Linux-6-Deployment_Guide-en-US
轉載于:https://blog.51cto.com/5778452/1745848