rpm命令总结

1、简介
在RPM(红帽软件包管理器)公布之前,要想在Linux系统中安装软件,只能采取编译源码包的方式。所以,早期安装软件是一件非常困难、耗费耐心的事情,而且大多数的服务程序仅仅提供自身的源代码,还需要运维人员编译代码后自行解决软件之间的依赖关系。
总而言之,早期的Linux系统在安装、升级、卸载服务程序时还要考虑到其他程序、库的依赖关系,所以在进行校验、安装、卸载、查询、升级等软件操作时难度都非常大。RPM机制则正是为了解决这些问题而设计的。
RPM有点像Windows系统中的控制面板,会建立统一的数据库,详细记录软件信息并能够自动分析依赖关系。

2、常用命令:

rpm -q 包名              查询软件包是否安装
rpm -qa | grep 包名   查询已安装的所有rpm包在过滤某个包是否安装
rpm -qf 文件名        查询系统文件所属哪个软件包,常用rpm -qf `which 命令`

rpm -qi 包名          查询已安装软件包的详细信息
rpm -ql 包名          查询已安装软件包中、文件安装的位置
rpm -qc 包名          查询已安装软件包中所有配置文件的路径
rpm -qR 包名          查询已安装软件包的依赖关系

-p        上面的命令加上-p参数则是查询未安装软件包的相关信息。
注意:-p参数需加上软件包的完整包名和位置信息例如rpm -qpR /mnt/cdrom/AppStream/Packages/whois-5.5.1-2.el8.x86_64.rpm

rpm -ivh x.rpm    安装软件,加 --force忽略报错,强制安装   
rpm -Uvh x.rpm    升级软件        
rpm -e x.rpm      卸载软件,加--nodeps忽略报错,强制卸载 ,建议在卸载时不要用rpm去卸载有依赖关系的包,应该用yum    

查看软件包内容是否被修改。注: 检验时参考了 /var/lib/rpm 目录下的rpm数据库信息
rpm -V   软件包名、例如 rpm -V findutils
rpm -Vf  文件路径、例如 rpm -Vf /usr/bin/find 

注:如果出现的全是点或者空,表示测试通过
出现下面的字符代表某测试的失败:
5 — MD5 校验和是否改变,你也看成文件内容是否改变
S — 文件长度,大小是否改变
L — 符号链接,文件路径是否改变
T — 文件修改日期是否改变
D — 设备
U — 用户,文件的属主
G — 用户组
M — 模式 (包含许可和文件类型)
? — 不可读文件
原文地址:https://www.cnblogs.com/you-xiaoqing/p/15497533.html