Rpm包管理功能全解node
軟件包管理的功能:將編譯好的程序的各組成文件打包成一個或幾個程序包文件,爲了方便的實現程序包的安裝、升級、卸載、查詢、校驗、數據庫維護。數據庫
下面咱們來看看RPM包管理的解析centos
Rpm包在redhat和S.U.S.E中有很大的應用服務器
咱們接下來就以centos系統中rpm包的管理作一些詳細的功能解析架構
使用yum(rhel系列)安裝時能夠自動解決依賴關係dide
rpm包命名格式:post
name-VERSION-release.arch.rpm 測試
VERSION:major.minor.releaseui
Major:主版本號(版本有大的更新); minor:次版本號(小更新)加密
release.arch:rpm包的發行號
release.os: 2.el7(平臺).i386(架構).rpm archetecture(架構):i386, x64(amd64), ppc, noarch理器;
實際操做:
本機在服務器上已經成功下載zsh-4.3.10-9.el6.x86_64.rpm用此來實施
語法:rpm [options] [packages_file]
安裝;-i,--install
rpm -ivh /path/to/rpm_package
-v;顯示安裝信息
-vv;顯示更詳細的安裝信息
-h;以井號顯示安裝進度
--nodeps;忽略依賴關係(適用於卸載)
--force;強行安裝(適用於卸載)
重裝;--replacepkgs會覆蓋原有信息
Rpm -i --replacepkgs /path/to/rpm_name
[root@bucktan ~]# rpm -ivh --replacepkgs zsh-4.3.10-9.el6.x86_64.rpm
卸載;-e,--erase
rmp -e package_name
--allmatches卸載匹配全部指定名稱的軟件包
--nodeps忽略依賴關係
--test 測試卸載
升級;-U -F
升級或安裝;
rpm -U /path/to/rpm_package
--oldpackage降級
在服務器上取了兩個包:zabbix-2.4.0-1.el6.x86_64.rpm
zabbix-2.4.5-1.el6.x86_64.rpm
以前升級至zabbix-2.4.5-1.el6.x86_64.rpm
[root@bucktan]~# rpm -Uvh --oldpackage zabbix-2.4.0-1.el6.x86_64.rpm
只升級;(若不存在舊版本則不會執行)
rpm -F /path/to/rpm_package
一般搭配vh使用;
rpm -Uvh|-Fvh /path/to/package
--nosignature 不檢查包簽名信息的合法性
注意;不要對內核執行升級操做
不一樣內核版本能夠共存,所以可執行安裝操做,但不建議升級
(重點) 查詢;rpm {-q|--query} [select-options] [query-options]
查詢包是否已安裝;
rpm -q package_name
[select-options]:
rpm -qa查詢全部已安裝的包;
rpm -qf /path/to/file查詢某文件是由那個包生成的;
-q --whatprovides file_name 查詢指定的capability由哪一個程序包所提供
-q --whatrequires file_name 查詢指定的capability由哪一個程序包所依賴
[query-options]:
rpm -ql package_name查詢包安裝後生成的文件;
rpm -qi package_name查詢包的簡要說明;
rpm -qd package_name查詢包安裝後生成的幫助文檔;
rpm -qc package_name查詢包安裝後生成的配置文件;
rpm -qR package_name 查詢指定軟件包的依賴關係
rpm -q --scripts 查詢包相關的腳本;
腳本分四類
preinstall 安裝前腳本
postinstall 安裝後腳本
preuninstall 卸載前腳本
postuninstall 卸載後腳本
查詢未安裝包的相關信息;-qp
rpm -qpl package_file 查詢安裝後會生成的的文件
rpm -qpi package_file查詢包的簡單描述信息;
可搭配其選項使用,如-qp --scripts
校驗;檢查安裝後的文件是否被修改過
rpm -V package_name
[root@bucktan ~]# rpm -V zsh
S.5....T. c /etc/zshrc
返回的註釋信息;
S file Size differs 大小
M Mode differs (includes permissions and file type) 頭文件
5 digest (formerly MD5 sum) differs MD5
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 能力改變了
校驗來源合法性和軟件的完整性
包完整性;單項加密機制(MD5|sha1..)
來源合法性;公鑰加密機制(RSA)
rpm -K /path/to/packagefile直接檢驗程序包來源合法性
rpm --checksig /path/to/package_file
--nosigeature:不檢查來源合法性
--nodigest:校驗時不檢查包完整性
導入GPG密鑰文件:
rpm --import /path/to/gpg-key-file
導入之後再作驗證
數據庫
位置:/var/lib/rpm
重建:
rpm --initdb:初始化
若是事先不存在一個數據庫,則新建之
rpm --rebuilddb 重建
直接新建數據庫,會覆蓋原有庫