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*”