升级:
- rpm {-U | --upgrade} [general-options] [install-options] PACKAGE_FILES...:升级或安装
- rpm {-F | --freshen} [general-options] [install-options] PACKAGE_FILES...:仅仅升级
- 常用:rpm -Uvh PACKAGE_FILE...; rpm -Fvh PACKAGE_FILE...
- --oldpackage:降级
- --force:强制升级
- 注意:
- 不要对内核做升级操作;Linux支持多内核版本并存,因此,直接安装新版本内核
- 如果某源程序包的配置文件安装后曾被修改过,升级时,该配置文件不会被覆盖,而是把新版本的配置文件重命名后提供(FILENAME.rpmnew)
卸载:
- rpm {-e | --erase} [--allmatches] [--nodeps] [--noscripts] [--test] PACKAGE_NAME...
- --allmatches:卸载所有匹配指定名称的程序包的各版本
查询:
- rpm {-q | --query} [select-options] [query-options]
- select-options
- PACKAGE_NAME:查询指定的程序包是否已经安装,及其版本;
- -a,--all:查询所有已经安装过的包
- -f FILE:查询指定的文件由哪个程序包安装生成
- -p PACKAGE_FILE:对未安装的程序包执行查询操作;
- 例如:rpm -qpl PACAKGE_NAME,查询程序包安装后会生成哪些文件
- --whatprovides CAPABILITY:查询指定的CAPABILITY由哪个程序包提供
- --wahtrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖
- query-options
- --changelog:查询rpm包的change log
- -l,--list:程序包安装生成的所有文件列表
- -i,--info:程序包相关的信息,版本号,大小,所属的包组,等等
- -c,--configfiles:查询指定的程序包提供的配置文件
- -d,--docfiles:查询指定的程序包提供的文档
- --provides:列出指定的程序包提供的所有CAPABILITY
- -R,--requires:查询指定的程序包的依赖关系
- --scripts:查询程序包自带的脚本片段
校验:
- rpm {-V | --verify} [select-options] [verify-options]
包来源合法性和完整性验证:
- 来源合法性验证
- 完整性验证
- 获取并导入信任的包制作者的秘药
- 对于CentOS发行版来说:rpm --import /etc/pki/rpm-gpg/;或者在光盘里有秘药
- 验证
- 安装此组织签名的程序时,会自动进行验证操作
- 手动验证,如下
- 导入秘药:rpm --import /media/cdrom/RPM-GPG-KEY-CentOS-7;导入秘药后,再安装就不会出现nokey的警告了
- 手动校验:rpm -K PACKAGE_FILE
- 发行者加密的方式:先提取特征码,再对特征码进行私钥加密;不涉及保密性,只保证合法性和完整性
数据库重建
- rpm管理器数据库路径:/var/lib/rpm
- 查询操作通过此数据库进行
- 获取帮助
- CentOS 6:man rpm
- CentOS 7:man rpmdb
- rpm {--initdb | --rebuilddb} [--dbpath DIRECTORY] [--root DIRECTORY]
- --initdb:如果没有就创建一个;有则不执行任何操作
- --rebuilddb:重新构建,通过读取当前系统上所有已经安装过的程序包进行重新创建