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