1. 程式人生 > >Linux之rpm包管理

Linux之rpm包管理

med 穩定 chan for ... ack mode des 來源

rpm包管理


註意:內核不推薦升級,如果需要新版內核,可進行安裝,linux可多版本內核共存,啟動時進行內核選擇即可,以免造成不穩定因素。
/var/lib/rpm 不要破壞,幾乎不可重建,重建後數據也沒有

主要掌握:
rpm -qa "vsft*" 查詢vsft開頭的包
rpm -e vsftpd 卸載
rpm -q vsftpd &> /dev/null | rpm -i /media/Packages/vsftpd- 安裝
rpm -ql tree:查詢包內文件
rpm -qf /bin/cat:查詢包來自哪個文件
rpm -qi tree:查看包信息
rpm2cpio /media/Packages/tree-1.6.0-10.el7.x86_64.rpm | cpio -tv 預覽包內容

rpm -q --scripts postfix
rpm -ivh https://aliyun.os 可以走網絡路徑安裝軟件包
rpm -qpi /media/Packages/tree-1.6.0-10.el7.x86_64.rpm 在軟件沒安裝的情況下,進到光盤內查詢包信息。
rpm -qc bash : 列出包內配置文件。
rpm -rR bash:查詢bash以來於哪些包
rpm -V tree:查看tree屬性是否被修改過。
rpm --import /media/RPM-GPG-KEY-CentOS-7 導入公鑰
rpm -e gpg-pubkey-f4a80eb5 卸載公鑰
rpm -K /media/Packages/tree-1.6.0-10.el7.x86_64.rpm 驗證包合法性


rpm {-i|--install} [install-options] PACKAGE_FILE…

-v: verbose
-vv:
-h: 以#顯示程序包管理執行進度
rpm -ivh PACKAGE_FILE ...

[install-options]

--test: 測試安裝,但不真正執行安裝,即dry run模式
--nodeps:忽略依賴關系
--replacepkgs | replacefiles
--nosignature: 不檢查來源合法性
--nodigest:不檢查包完整性
--noscripts:不執行程序包腳本
%pre: 安裝前腳本 --nopre
%post: 安裝後腳本 --nopost

%preun: 卸載前腳本 --nopreun
%postun: 卸載後腳本 --nopostun

rpm包升級

rpm {-U|--upgrade} [install-options] PACKAGE_FILE...
rpm {-F|--freshen} [install-options] PACKAGE_FILE...

-------upgrade:安裝有舊版程序包,則“升級”
如果不存在舊版程序包,則“安裝”
--------freshen:安裝有舊版程序包,則“升級”
如果不存在舊版程序包,則不執行升級操作
rpm -Uvh PACKAGE_FILE ...
rpm -Fvh PACKAGE_FILE ...

--oldpackage:降級
--force: 強制安裝

包查詢
rpm {-q|--query} [select-options] [query-options]
[select-options]

-a:所有包
-f:查看指定的文件由哪個程序包安裝生成
-p rpmfile:針對尚未安裝的程序包文件做查詢操作
--whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個包所提供
--whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴
rpm2cpio 包文件|cpio –itv 預覽包內文件
rpm2cpio 包文件|cpio –id “*.conf” 釋放包內文件

[query-options]

--changelog:查詢rpm包的changelog
-c:查詢程序的配置文件
-d:查詢程序的文檔
-i:information
-l:查看指定的程序包安裝後生成的所有文件
--scripts:程序包自帶的腳本
--provides:列出指定程序包所提供的CAPABILITY
-R:查詢指定的程序包所依賴的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 ...

當包卸載時,對應的配置文件不會刪除, 以FILENAME.rpmsave形式保留

包校驗
rpm {-V|--verify} [select-options] [verify-options]

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

導入所需要公鑰

rpm -K|checksig rpmfile 檢查包的完整性和簽名
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS 7發行版光盤提供:RPM-GPG-KEY-CentOS-7
rpm -qa “gpg-pubkey*”

Linux之rpm包管理