Skip to content

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 常用命令速查表?包含安装、查询、更新、卸载等场景的完整命令示例,方便你随时查阅。