CentOS系統上rpm命令管理程序包:
安裝、卸載、升級、查詢、校驗、數據庫維護
安裝:
rpm {-i|–install} [install-options] PACKAGE_FILE …
-v: verbose
-vv:
-h: 以#顯示程序包管理執行進度;每個#表示2%的進度
rpm -ivh PACKAGE_FILE …
例一:安裝程序包
[root@localhost Packages]# rpm -ivh zsh-5.0.2-25.el7.x86_64.rpm 警告:zsh-5.0.2-25.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 正在升級/安裝... 1:zsh-5.0.2-25.el7 ################################# [100%] [root@localhost Packages]#
[install-options]
–test: 測試安裝,但不真正執行安裝過程;dry run模式;
–nodeps:忽略依賴關系;
–replacepkgs: 重新安裝;
例一:重新安裝
[root@localhost Packages]# rpm -ivh --replacepkgs zsh-5.0.2-25.el7.x86_64.rpm 警告:zsh-5.0.2-25.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 正在升級/安裝... 1:zsh-5.0.2-25.el7 ################################# [100%]
–nosignature: 不檢查來源合法性;
–nodigest:不檢查包完整性;
例一:不檢查來源,不檢查完整性
[root@localhost Packages]# rpm -ivh --replacepkgs zsh-5.0.2-25.el7.x86_64.rpm --nosignature --nodigest 準備中... ################################# [100%] 正在升級/安裝... 1:zsh-5.0.2-25.el7 ################################# [100%]
–noscipts:不執行程序包腳本片斷;
%pre: 安裝前腳本; –nopre
%post: 安裝后腳本; –nopost
%preun: 卸載前腳本; –nopreun
%postun: 卸載后腳本; –nopostun
升級:
rpm {-U|–upgrade} [install-options] PACKAGE_FILE …
rpm {-F|–freshen} [install-options] PACKAGE_FILE …
upgrage:安裝有舊版程序包,則“升級”;如果不存在舊版程序包,則“安裝”;
freeshen:安裝有舊版程序包,則“升級”;如果不存在舊版程序包,則不執行升級操作;
rpm -Uvh PACKAGE_FILE …
rpm -Fvh PACKAGE_FILE …
–oldpackage:降級;
–force: 強行升級;
注意:(1) 不要對內核做升級操作;Linux支持多內核版本并存,因此,對直接安裝新版本內核;
(2) 如果原程序包的配置文件安裝后曾被修改,長級時,新版本的提供的同一個配置文件并不會直接覆蓋老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留;
查詢:
rpm {-q|–query} [select-options] [query-options]
[select-options]
-a: 所有包
-f: 查看指定的文件由哪個程序包安裝生成
-p /PATH/TO/PACKAGE_FILE:針對尚未安裝的程序包文件做查詢操作;
–whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個包所提供;
–whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴;
例一:查詢系統上所有已安裝的包
[root@localhost Packages]# rpm -qa dracut-network-033-463.el7.x86_64
[query-options]
–changelog:查詢rpm包的changlog
例一:查詢rpm包的bug
[root@localhost Packages]# rpm -q --changelog zsh * 四 7月 14 2016 Kamil Dudka <kdudka@redhat.com> - 5.0.2-25 - improve use of new command substitution in completion (#1356388)
-c: 查詢程序的配置文件
例一:查詢程序包的配置文件
[root@localhost Packages]# rpm -qc zsh /etc/skel/.zshrc /etc/zlogin /etc/zlogout /etc/zprofile /etc/zshenv /etc/zshrc
-d: 查詢程序的文檔
例一:查詢文檔
[root@localhost Packages]# rpm -qd zsh /usr/share/doc/zsh-5.0.2/BUGS
-i: information 信息
例一:查看程序包信息
[root@localhost Packages]# rpm -qi zsh
-l: 查看指定的程序包安裝后生成的所有文件;
例一:查看指定的程序包安裝后生成的所有文件;
[root@localhost Packages]# rpm -ql zsh
–scripts:程序包自帶的腳本片斷
例一:程序包自帶的腳本片斷
[root@localhost Packages]# rpm -q --scripts zsh postinstall scriptlet (using /bin/sh): if [ ! -f /etc/shells ] ; then echo "/bin/zsh" > /etc/shells else grep -q "^/bin/zsh$" /etc/shells || echo "/bin/zsh" >> /etc/shells
-R: 查詢指定的程序包所依賴的CAPABILITY;
–provides: 列出指定程序包所提供的CAPABILITY;
用法:
-qi PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE
-qpi PACKAGE_FILE, -qpl PACKAGE_FILE, …
-qa
卸載:
rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts]
[–notriggers] [–test] PACKAGE_NAME …
–nodeps忽略軟件包的依賴關系
例一:卸載軟件
[root@localhost Packages]# rpm -e zsh [root@localhost Packages]# rpm -q zsh 未安裝軟件包 zsh
校驗:
rpm {-V|–verify} [select-options] [verify-options]
例一:核驗文件是否有改動
[root@localhost Packages]# rpm -V zsh S.5....T. /usr/share/zsh/5.0.2/functions/tcp_read
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
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
包來源合法性驗正及完整性驗正:
完整性驗正:SHA256
來源合法性驗正:RSA
公鑰加密:
對稱加密:加密、解密使用同一密鑰;
非對稱加密:密鑰是成對兒的,
public key: 公鑰,公開所有人
secret key: 私鑰, 不能公開
導入所需要公鑰:
rpm –import /PATH/FROM/GPG-PUBKEY-FILE
[root@localhost cdrom]# rpm --import RPM-GPG-KEY-CentOS-7
CentOS 7發行版光盤提供的密鑰文件:RPM-GPG-KEY-CentOS-7
數據庫重建:
rpm {–initdb|–rebuilddb}
initdb: 初始化
如果事先不存在數據庫,則新建之;否則,不執行任何操作;
rebuilddb:重建
無論當前存在與否,直接重新創建數據庫;
回顧:Linux程序包管理的實現、rpm包管理器
rpm命令實現程序管理:
安裝:-ivh, –nodeps, –replacepkgs
卸載:-e, –nodeps
升級:-Uvh, -Fvh, –nodeps, –oldpackage
查詢:-q, -qa, -qf, -qi, -qd, -qc, -q –scripts, -q –changlog, -q –provides, -q –requires
校驗:-V
導入GPG密鑰:–import, -K, –nodigest, –nosignature
數據庫重建:–initdb, –rebuilddb
原創文章,作者:kang,如若轉載,請注明出處:http://www.www58058.com/76519