程序包管理器:
功能:將編譯好的應用程序的各組成文件打包成一個或幾個程序包文件,從而更方便地實現程序包的安裝、升級、卸載和查詢等管理操作;
? 1、程序包的組成清單(每個程序包都單獨實現);
? ? ? ? 文件清單
? ? ? ? ?安裝或卸載時運行的腳本
? 2、數據庫(公共)
? ? ? ?程序包的名稱和版本;
? ? ? 依賴關系;
? ? ? 功能說明;
? ? ? 安裝生成的各文件的文件路徑及校驗碼信息;
獲取程序包的途徑:
(1) 系統發行版的光盤或官方的文件服務器(或鏡像站點):
http://mirrors.aliyun.com 、http://mirrors.sohu.com、http://mirrors.163.com
(2) 項目的官方站點
(3) 第三方組織:
(a) EPEL
(b) 搜索引擎
http://pkgs.org、http://rpmfind.net 、http://rpm.pbone.net
建議:檢查其合法性 ?來源合法性;程序包的完整性;
CentOS系統上rpm命令管理程序包:
安裝:-i, –install
升級:-U, –update, -F, –freshen
卸載:-e, –erase
查詢:-q, –query
校驗:-V, –verify
數據庫維護:–builddb, –initdb
安裝:?rpm -ivh PACKAGE_FILE …
[root@localhost ~]# rpm -ivh rh-redis32-redis-3.2.4-1.el6.x86_64.rpm
warning: rh-redis32-redis-3.2.4-1.el6.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f2ee9d55: NOKEY
Preparing… ########################################### [100%]
1:rh-redis32-redis ########################################### [100%]
[root@localhost ~]#
GENERAL OPTIONS:
-v:verbose,詳細信息
-vv:更詳細的輸出
[install-options]:
-h:hash marks輸出進度條;每個#表示2%的進度;
–test:測試安裝,檢查并報告依賴關系及沖突消息等;
–nodeps:忽略依賴關系;不建議;
–replacepkgs:重新安裝
注意:rpm可以自帶腳本;
四類:–noscripts
preinstall:安裝過程開始之前運行的腳本,%pre , –nopre
postinstall:安裝過程完成之后運行的腳本,%post , –nopost
preuninstall:卸載過程真正開始執行之前運行的腳本,%preun, –nopreun
postuninstall:卸載過程完成之后運行的腳本,%postun , –nopostun
–nosignature:不檢查包簽名信息,不檢查來源合法性;
[root@localhost ~]# rpm -ivh –replacepkgs –nosignature rh-redis32-redis-3.2.4-1.el6.x86_64.rpm
Preparing… ########################################### [100%]
1:rh-redis32-redis ########################################### [100%]
[root@localhost ~]#
–nodigest:不檢查包完整性信息;
升級:
rpm {-U|–upgrade} [install-options] PACKAGE_FILE …
rpm {-F|–freshen} [install-options] PACKAGE_FILE …
-U:升級或安裝;
-F:升級
rpm ?-Uvh PACKAGE_FILE …
rpm ?-Fvh PACKAGE_FILE …
–oldpackage:降級;
–force:強制升級;
卸載:
rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts] [–test] PACKAGE_NAME …
?[root@localhost ~]# rpm -e rh-redis32-redis
–allmatches:卸載所有匹配指定名稱的程序包的各版本;
–nodeps:忽略依賴關系
–test:測試卸載,dry run模式
查詢:
rpm {-q|–query} [select-options] [query-options]
[select-options]
PACKAGE_NAME:查詢指定的程序包是否已經安裝,及其版本;
-a, –all:查詢所有已經安裝過的包;
-f ?FILE:查詢指定的文件由哪個程序包安裝生成;
-p, –package PACKAGE_FILE:用于實現對未安裝的程序包執行查詢操作;
[root@localhost ~]# rpm -qpc rh-redis32-redis-3.2.4-1.el6.x86_64.rpm
warning: rh-redis32-redis-3.2.4-1.el6.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f2ee9d55: NOKEY
/etc/logrotate.d/rh-redis32-redis
/etc/opt/rh/rh-redis32/redis-sentinel.conf
/etc/opt/rh/rh-redis32/redis.conf
/etc/security/limits.d/95-rh-redis32-redis.conf
–whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個程序包提供;
–whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴;
[query-options]
–changelog:查詢rpm包的changlog;
-l, –list:程序安裝生成的所有文件列表;
-i, –info:程序包相關的信息,版本號、大小、所屬的包組,等;
-c, –configfiles:查詢指定的程序包提供的配置文件;
-d, –docfiles:查詢指定的程序包提供的文檔;
–provides:列出指定的程序包提供的所有的CAPABILITY;
-R, –requires:查詢指定的程序包的依賴關系;
–scripts:查看程序包自帶的腳本片斷;
用法:
-qi ?PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE
-qpi ?PACKAGE_FILE, -qpl PACKAGE_FILE, -qpc PACKAGE_FILE, …
校驗:
rpm {-V|–verify} [select-options] [verify-options]
包來源合法性驗正和完整性驗正:
來源合法性驗正:
完整性驗正:
獲取并導入信任的包制作者的密鑰:
對于CentOS發行版來說:rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
驗正:
(1) 安裝此組織簽名的程序時,會自動執行驗正;
(2) 手動驗正:rpm -K PACKAGE_FILE
數據庫重建:
rpm管理器數據庫路徑:/var/lib/rpm/
查詢操作:通過此處的數據庫進行;
獲取幫助:
CentOS 6:man rpm
CentOS 7:man rpmdb
rpm {–initdb|–rebuilddb} [–dbpath DIRECTORY] [–root DIRECTORY]
–initdb:初始化數據庫,當前無任何數據庫可實始化創建一個新的;當前有時不執行任何操作;
–rebuilddb:重新構建,通過讀取當前系統上所有已經安裝過的程序包進行重新創建;
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/93740