Linux 笔记:rpm命令

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/目录下

相关推荐
以太浮标几秒前
华为eNSP模拟器综合实验之- MGRE多点GRE隧道详解
运维·网络·网络协议·网络安全·华为·信息与通信
sakiko_5 分钟前
UIKit学习笔记3-布局、滚动视图、隐藏或显示视图
前端·笔记·学习·objective-c·swift·uikit
koo36415 分钟前
周报5.3
笔记
杨云龙UP1 小时前
ODA运维实战:Oracle 19c YJXT PDB表空间在线扩容全过程_20260503
linux·运维·服务器·数据库·oracle
郝学胜-神的一滴1 小时前
跨平台动态库与头文件:从原理到命名的深度解析
linux·c++·程序人生·unix·cmake
xian_wwq2 小时前
【学习笔记】Harness到底是什么
笔记·学习·ai·harness
二哈赛车手2 小时前
新人笔记---项目中简易版的RAG检索后评测指标(@Recall ,Mrr..)实现
java·开发语言·笔记·spring·ai
yyuuuzz2 小时前
aws 基础认知与实践注意点
运维·服务器·网络·云计算·github·aws
Rust语言中文社区2 小时前
【Rust日报】2026-05-02 Temper - 用 Rust 编写的 Minecraft 服务器项目发布 0.1.0 版
运维·服务器·开发语言·后端·rust
吠品2 小时前
高性能JS数组操作:何时选用push、unshift、splice或扩展运算符?
linux·服务器·数据库