CentOS系统上使用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 {-U|--upgrade} [install-options] PACKAGE_FILE
rpm {-F|--freshen} [install-options] PACKAGE_FILE
upgrade:安装有旧版程序包,则升级
如果不存在旧版程序包,则安装
freshen:安装有旧版程序包,则升级
如果不存在旧版程序包,则不执行操作
rpm -Uvh PACKAGE_FIE
rpm -Fvh PACKAGE_FIE
--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
包校验
宝来源的合法性验证及完整性验证
完整性验证:SHA256
来源合法性验证:RSA
公钥加密
对称加密:加密、解密使用同一秘钥
非对称加密:秘钥是成对的
public key:公钥,公开所有人
secret key:私钥,不可以公开
导入所需要公钥
rpm -K|checksig rpmfile 检查包的完整性和签名
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
rpm -qa "gpg-pubkey*"
rpm 数据库
/var/lib/rpm
rpm {--initdb|--rebuilddb}
initdb:初始化
如果事先不存在数据库,则新建之
否则,不执行任何操作
rebuilddb:重建已安装的包头的数据库索引目录