Linux 中 RPM 命令详解
RPM(Red Hat Package Manager)是 Red Hat 及其衍生发行版(如 CentOS、Fedora 等)中用于安装、卸载、查询和管理软件包的工具。
基本语法
rpm [选项] 包名
安装软件包
rpm -i 包文件名
-i:表示安装(install)。
-v:显示安装过程的详细信息(verbose)
-h:以哈希符号(#)显示安装进度
--force:强制安装,即使包已安装或存在文件冲突(慎用)
--nodeps:忽略依赖关系强制安装(不推荐,可能导致软件无法运行)
例如:rpm -i httpd-2.4.53-10.el8.x86_64.rpm
升级软件包
rpm -U 包文件名
-U:表示升级(upgrade),如果软件包未安装则进行安装。
例如:rpm -U httpd-2.4.54-10.el8.x86_64.rpm
卸载软件包
rpm -e 包名
-e:表示卸载(erase)。
例如:rpm -e httpd
验证软件包,验证数据库记录的安装包信息与实际磁盘相关文件的差异,用来判断文件是否被篡改
rpm -V 包名
-V:表示验证(verify),检查文件的完整性是否被改变。
输出字符含义:
S:文件大小不同。
M:文件的权限或模式被修改。
5:MD5校验和不同。
D:设备号不同。
L:符号链接指向不同的目标。
T:MTIME(修改时间)不同。
U:文件的所有者不同。
G:文件的组不同。
例如:rpm -V httpd
查询已安装的软件包
rpm -q 包名
-q:表示查询(query)。
例如:rpm -q httpd
列出所有已安装的软件包
rpm -qa
-a:表示所有(all)。
例如:rpm -qa | grep httpd
显示软件包的详细信息
rpm -qi 包名
-i:表示信息(information)。
例如:rpm -qi httpd
显示软件包安装的文件,软件包在安装时,预期会在系统上生成哪些文件
rpm -ql 包名
-l:表示列表(list)。
例如:rpm -ql httpd
根据文件名查询是否归属某个已安装的软件包
rpm -qf <文件路径> 是-ql的逆操作
显示软件包的配置文件
rpm -qc 包名
-c:表示配置文件(configuration files)。
例如:rpm -qc httpd
显示软件包的文档文件
rpm -qd 包名
-d:表示文档文件(documentation files)。
例如:rpm -qd httpd
查询指定安装包将会释放哪些文件,或者说是查询安装包包含哪些文件(针对未安装的.rpm)
rpm -qpl 软件名.rpm
用于查看或提取 RPM 包中的脚本。
重新生成数据库 当 RPM 数据库损坏时,可以使用以下命令重建:
rpm --rebuilddb
导入GPG密钥:RPM包通常通过GPG密钥签名,安装前需导入密钥以验证包的合法性,命令:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-9(不同系统密钥路径可能不同)
查询已导入的GPG密钥
rpm -qa gpg-pubkey*
输出类似gpg-pubkey-352c64e5-621e9f35
rpm 相关的数据库保存在/var/lib/rpm/目录下