rpm 是 Red Hat Package Manager(红帽包管理器)的缩写,是 Linux 系统中用于安装、查询、更新和卸载软件包的经典命令行工具,主要适用于 RHEL、CentOS、Fedora 等基于 RPM 包管理体系的发行版。
一、rpm 的核心定位与作用
rpm 的核心功能是对 Linux 系统中的软件包(后缀为 .rpm 的文件)进行全生命周期管理,解决了软件安装时的依赖检查、文件部署、版本控制等问题。
- 打包标准:
.rpm包将软件的可执行文件、配置文件、文档等资源打包成一个文件,方便分发和安装。 - 依赖管理:安装时会自动检查软件所需的依赖包,若缺少依赖会提示(但需手动解决,这是它与
yum/dnf的主要区别)。 - 系统集成:安装后会将软件信息(如版本、安装路径、文件列表)记录到系统数据库(
/var/lib/rpm/),便于后续查询和管理。
二、rpm 的常用核心命令
rpm 命令通过不同参数实现不同功能,以下是最常用的几类操作:
1. 安装软件包
bash
# 基础安装(若有依赖缺失会失败)
rpm -ivh 软件包名称.rpm-i:install,表示安装操作。-v:verbose,显示安装过程的详细信息。-h:hash,显示安装进度条(以#符号展示)。
2. 查询已安装的软件
bash
# 查询指定软件是否已安装
rpm -qa | grep 软件名称关键词
# 示例:查询是否安装了 nginx
rpm -qa | grep nginx
# 查看已安装软件的详细信息(如版本、安装路径)
rpm -qi 软件包名称
# 示例:查看已安装 nginx 的详细信息
rpm -qi nginx-q:query,表示查询操作。-a:all,查询系统中所有已安装的 RPM 包。-i:info,显示软件的详细描述信息。
3. 更新软件包
bash
# 更新指定软件到最新版本(需提供新版本的 .rpm 包)
rpm -Uvh 新版本软件包.rpm-U:upgrade,更新软件;若软件未安装,则自动执行安装。- 若需强制更新(忽略版本差异),可添加
-f参数(rpm -Uvhf ...),但不建议随意使用。
4. 卸载软件包
bash
# 卸载指定软件(需输入完整的软件包名称,可通过 rpm -qa 查询)
rpm -e 软件包完整名称
# 示例:卸载 nginx(假设完整名称为 nginx-1.24.0-1.el8.x86_64)
rpm -e nginx-1.24.0-1.el8.x86_64-e:erase,表示卸载操作。- 卸载时会检查该软件是否被其他软件依赖,若有依赖会提示无法卸载(需先卸载依赖软件)。
三、rpm 与 yum/dnf 的区别
很多人会混淆 rpm 和 yum/dnf,其实它们是互补关系,核心区别在于依赖处理能力:
| 工具 | 核心特点 | 依赖处理方式 | 适用场景 |
|---|---|---|---|
| rpm | 底层包管理工具,操作单一 .rpm 包 | 仅检查依赖,需手动下载安装缺失依赖 | 手动安装本地 .rpm 包、查询软件信息 |
| yum/dnf | 基于 rpm 的高级包管理器(dnf 是 yum 的升级) | 自动从软件源下载并安装所有依赖包 | 在线安装、更新软件(无需手动处理依赖) |
简单来说,rpm 是“手动操作单个包”,yum/dnf 是“自动处理依赖的批量操作”,日常使用中更推荐用 yum/dnf 简化依赖管理。
要不要我帮你整理一份 rpm 常用命令速查表?包含安装、查询、更新、卸载等场景的完整命令示例,方便你随时查阅。