CentOS系统上使用rpm命令管理程序包:安装、卸载、升级、查询、校验、数据库维护
1.基本安装
rpm -ivh PackageFile
2.rpm选项
rpm -ivh --test PackageFile
--test 测试安装
--nodeps 忽略依赖性
--nosignature: 不检查来源合法性
--nodigest:不检查包完整性
3.软件包脚本
--nopre 安装前脚本
--nopost 安装时脚本
--nopreun 卸载前脚本
--nopostun 卸载后脚本
#所有脚本均不执行的话直接使用
--noscript
4.软件包的升级
升级时的注意事项:
- 不要对内核进行升级操作,linux支持多内核并存,所以直接安装新内核就好.
- 如果升级时原程序的配置文件被更改过的话,新程序不会覆盖配置文件。会把就配置文件重命名名(FILENAME.rpmnew)后保存。
rpm -Uvh PackageFIle #软件存在就升级,不存在就安装
rpm -Fvh PackageFile #存在则升级,软件不存在不升级
#
--oldpackage:降级
--force: 强制安装
5.软件包的查询
rmp -qa
-p为包的查询,a为列出所有包
rpm -qa | grep "mysql"
配合grep模糊搜索使用
rpm -qf file
查询配置文件是用哪个包提供的
rpm -q --whatprovides webserver
查询能力是那个软件包提供,包括服务和文件,相比于-qf
来说范围更宽
rpm -q --whatrequires
查询指定的能力依赖于哪个包
6.包查询
rpm -q --changelog httpd
查询rpm包的日志文件,非程序的日志文件
-c: 查询程序的配置文件
-d: 查询程序的文档
-i: information
-l: 查看指定的程序包安装后生成的所有文件
7.rpm包校验
1.安装前的完整性校验
CentOS的光盘中都会附带一个GPGkey用于完整性的校验
导入秘钥
rpm --import RPM-GPG-KEY-CentOS-7
#查看已经导入的秘钥
[root@centos6 app]# rpm -qa "gpg-pubkey*"
在目录/var/lib/rpm中的文件都是数据库文件,以__db开头的是数据库缓存文件,如果删除了那么数据库将无工作。这时就需要重建数据库
- 初始化数据库
rpm -initdb
数据库不存在就创建,存在不执行任何操作 - 重建数据库
rpm -rebuilddb
- 安装后的校验
在rpm数据库中存放了软件初始安装时的数据信息,当使用包校验的会拿数据库中的信息比对现在的信息,可以查出哪些被认为的修改或者覆盖过。
使用rpm -V 软件包名
校验是否被修改过。
校验参数的详细解读
传送门: 软件包校验实验