rpm包管理功能全解
軟件包管理的功能:將編譯好的程序的各組成文件打包成一個或幾個程序包文件,為了方便的實現程序包的安裝、升級、卸載、查詢、校驗、數據庫維護。
下面我們來看看RPM包管理的解析
Rpm包在redhat和S.U.S.E中有很大的應用
我們接下來就以centos系統中rpm包的管理做一些詳細的功能解析
使用yum(rhel系列)安裝時可以自動解決依賴關系d
rpm包命名格式:
name-VERSION-release.arch.rpm
VERSION:major.minor.release
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 重建
????????????????????直接新建數據庫,會覆蓋原有庫
?