RPM是Red Hat系Linux的底层包管理工具,仅操作本地.rpm文件且不自动解决依赖,需配合dnf/yum使用;支持安装(-ivh)、升级(-Uvh)、卸载(-e)、查询(-qa/-ql/-qf)和校验(-V)等操作。

RPM 是 Red Hat 系 Linux(如 RHEL、CentOS、Fedora、EulerOS)最底层的包管理工具,它直接操作 .rpm 文件,安装、查询、卸载、校验都靠它完成。但它本身不联网、不解依赖——这点必须清楚。真正解决依赖的是 yum 或 dnf(yum 的现代替代),它们调用 rpm 执行最终操作,同时负责从仓库拉取缺失依赖。
安装与卸载:基础但需谨慎
安装本地 RPM 包最常用命令是:
-
rpm -ivh package.rpm:-i 安装,-v 显示详情,-h 显示进度条 -
rpm -Uvh package.rpm:升级已存在包;若未安装,则等效于 -i -
rpm -e package-name:卸载时填的是包名(如nginx),不是文件名(如nginx-1.24.0-1.el9.x86_64.rpm)
⚠️ 强制跳过依赖或冲突(--nodeps 或 --force)仅限测试环境临时使用。生产系统中强行绕过依赖,常导致运行时报 symbol not found 或 No such file or directory,排查成本远高于提前处理依赖。
查询:快速定位包与文件归属
查什么、怎么查,关键在选项组合:
-
rpm -q nginx:确认是否安装(返回版本号说明已装,否则提示未安装) -
rpm -qa | grep keyword:列出所有已装包并过滤关键词 -
rpm -qi nginx:查看包的详细信息(版本、打包者、描述、安装时间等) -
rpm -ql nginx:列出该包安装的所有文件路径(含配置文件、二进制、文档) -
rpm -qc nginx:只显示配置文件(快速定位nginx.conf等) -
rpm -qf /usr/bin/nginx:反向查文件属于哪个包(运维排障高频操作)
依赖分析:看清“缺什么”,再决定怎么补
RPM 包声明的依赖(Requires)分两类:软件包名(如 openssl-libs)和文件路径(如 /lib64/libc.so.6)。分析方法有:
-
rpm -qR nginx:查已安装包的依赖项 -
rpm -qpR package.rpm:查未安装的 .rpm 文件依赖(加-p表示操作包文件) -
dnf provides /lib64/libc.so.6:查哪个包提供指定文件(比 rpm -qf 更适合反向找依赖包) -
dnf deplist nginx:展示完整依赖树,包括间接依赖和提供者
注意:rpm -qR 只告诉你“需要什么”,不告诉你“哪里能下”。真正补依赖,得靠 dnf install ./package.rpm 或 dnf localinstall package.rpm(旧版),它们会自动解析本地包依赖,并从启用的仓库中下载补齐。
离线部署:用好 rpm + dnf/yum 协同模式
纯离线场景下,不能指望 rpm 自己联网下载,但可以借助 dnf/yum 的本地解析能力:
- 把目标 RPM 及其全部依赖包(可先用
dnf download --resolve package-name提前拉全)拷贝到离线机 - 执行
dnf install *.rpm或yum localinstall *.rpm,它会自动排序安装顺序、跳过已装包、处理依赖闭环 - 若连 dnf/yum 都不可用,才退回到纯 rpm 手动安装——此时务必按
rpm -qpR输出的依赖顺序,从底层库开始逐个装
不复杂但容易忽略


















