前言

在 CentOS、RHEL、Fedora 等红帽系 Linux 发行版中,RPM 和 YUM 是最核心的软件包管理工具。二者是「底层工具」与「上层封装」的关系,共同解决了 Linux 系统中软件的安装、卸载、升级与依赖管理问题。


提示:以下是本篇文章正文内容,下面案例可供参考


一、RPM:底层软件包管理工具

1.1 什么是 RPM

RPM 全称 Red Hat Package Manager,是红帽公司推出的软件包管理标准,对应 .rpm 格式的安装包。它直接操作系统中的软件包,是 Linux 软件管理的底层工具。

核心特点:

  • 安装速度快,操作直接针对本地包文件
  • 无法自动解决软件依赖关系,需手动补齐所有依赖包
  • 适合单个本地 RPM 包的安装、精细查询与卸载

1.2 RPM 核心命令速查

安装软件

rpm -ivh 软件包文件名.rpm
  • -i:install,执行安装
  • -v:verbose,显示详细安装过程
  • -h:hash,以井号显示安装进度条

查询软件

# 查看系统中所有已安装的软件包
rpm -qa

# 检查某个软件是否已安装
rpm -q 软件名

# 查看已安装软件的详细信息(版本、发布时间、描述等)
rpm -qi 软件名

# 查看该软件安装到了系统的哪些目录、生成了哪些文件
rpm -ql 软件名

# 反向查询:某个文件/命令属于哪个已安装的软件包
rpm -qf 文件绝对路径

运行示例如下:
在这里插入图片描述

升级软件

rpm -Uvh 软件包文件名.rpm
  • -U:升级模式;若系统中未安装该软件,则直接执行安装
  • -i:安装
  • -v:安装的时候显示安装的详细信息
  • -h:显示安装的进度条

运行示例如下:
在这里插入图片描述

卸载软件

rpm -e 软件名

注意:若有其他软件依赖当前包,卸载会直接报错。需先卸载上层依赖项,不建议使用强制参数忽略依赖卸载系统核心包,极易导致系统崩溃

rpm -e --nodeps 软件名		#强制删除rpm包

注意:不建议这样做,可能会影响其他正常运行的程序

1.3 RPM 的核心局限性

RPM 最大的痛点是依赖地狱:安装一个业务软件时,往往需要先安装它依赖的多个系统库,每个依赖库可能又有次级依赖,纯手动逐个安装极其繁琐。YUM 正是为解决这个问题而诞生的上层工具。


二、YUM:自动化依赖管理工具

2.1 什么是 YUM

YUM 全称 Yellowdog Updater Modified,是基于 RPM 的前端包管理器。它在 RPM 的基础上增加了「软件仓库(Repository)」和「自动依赖解析」两大核心能力。

工作原理:

  1. 官方或第三方将大量 RPM 包和完整的依赖关系信息,整理存放在网络软件仓库中
  2. YUM 读取仓库的元数据,自动计算安装目标软件所需的全部依赖包
  3. 一次性自动下载并安装所有依赖与主程序,全程无需人工干预

2.2 YUM 核心命令速查

安装软件

# 安装指定软件,-y 表示全程自动确认,无需手动输入 y
yum install -y 软件名

# 安装本地 RPM 包,并自动从网络仓库解决其依赖(高频实用命令)
yum localinstall -y 本地包文件名.rpm

运行示例如下:
在这里插入图片描述

卸载软件

yum remove 软件名

升级软件

# 升级单个指定软件
yum update -y 软件名

# 升级系统中所有可升级的软件包(谨慎用于生产环境)
yum update -y

查询与搜索

# 按关键词搜索仓库中可用的软件包
yum search 关键词

# 查看指定软件的详细信息(版本、大小、功能描述)
yum info 软件名

# 列出仓库中所有可安装、已安装的软件包
yum list

# 反向查询:某个命令/文件属于哪个软件包(未安装也可查询)
yum provides 命令名/文件路径

仓库与缓存管理

# 查看当前系统已启用的所有 YUM 仓库
yum repolist

# 清理本地缓存的旧安装包与过期元数据
yum clean all

# 重新生成仓库元数据缓存,提升后续安装速度
yum makecache

包组批量管理

YUM 支持按「包组」批量安装一类功能软件,比如开发工具集、桌面环境等。

# 查看所有可用的软件包组
yum grouplist

# 安装整个包组,例如「开发工具」组
yum groupinstall -y "Development Tools"

2.3 YUM 配置说明

  • 仓库配置文件存放目录:/etc/yum.repos.d/
  • 合法的仓库配置文件必须以 .repo 作为后缀
  • 日常更换国内镜像源(阿里云、清华源等),本质就是修改该目录下的仓库配置文件

三、RPM 与 YUM 核心对比

对比维度 RPM YUM
工具定位 底层包管理工具 基于 RPM 的上层包管理器
依赖处理 无法自动解决,需手动逐个处理 自动解析并安装全部依赖包
安装包来源 本地 .rpm 文件 网络软件仓库(repo)
使用复杂度 高,需自行处理依赖链 低,一条命令完成全流程
适用场景 单个本地包安装、精细文件查询 在线安装、批量管理、依赖复杂的软件
层级关系 底层执行工具 底层仍调用 RPM 完成包的安装操作

四、高频实战场景与易错点

4.1 快速判断软件是否安装

两种常用方式,按需选择:

# 方式1:rpm 精确查询系统已安装包
rpm -q nginx

# 方式2:yum 同时查询已安装包 + 仓库可用包
yum list nginx

4.2 查找命令所属的软件包

比如不知道 ifconfig 命令来自哪个安装包:

# 方式1:rpm 反向查询(仅支持已安装的命令)
rpm -qf /usr/sbin/ifconfig

# 方式2:yum 反向查询(未安装也可从仓库中检索)
yum provides ifconfig

4.3 常见易错点

  1. 卸载命令不要加文件后缀:卸载用 rpm -e nginx,只需写软件名,不要写成完整的 rpm 文件名。
  2. 禁止随意强制卸载系统包--nodeps 参数会忽略依赖强制卸载,用于系统核心包极易导致环境崩溃。
  3. 记不清包名先搜索:安装前用 yum search 检索准确包名,避免输错导致安装失败。
  4. 换源后刷新缓存:修改仓库配置后,必须执行 yum clean all && yum makecache 让配置立即生效。

五、总结

RPM 是 Linux 软件管理的基础,负责单个包的安装、查询与卸载,是理解包管理原理的核心;YUM 在 RPM 之上封装了仓库机制与自动依赖解决能力,是日常运维和实验操作的主力工具。理解二者的层级关系,掌握高频命令与适用场景,是 Linux 系统管理入门的必备技能。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐