下面用一篇偏"教程型"的文章,系统地讲一下 yum 的安装与使用、适用平台、软件源来源,以及它和 apt 的关系等。你可以当成入门说明书来看。
一、Yum 是什么?
Yum(Yellowdog Updater, Modified)是基于 RPM 的 Linux 发行版常用的软件包管理工具。它的核心作用:
- 自动解决软件包依赖关系
- 从远程仓库(软件源)下载并安装/更新/删除 RPM 包
- 提供统一的命令行接口,方便系统维护
Yum 以及后来的 DNF (Yum 的下一代替代品)是 RPM 系的主流工具;与之对应的是 Debian 系的 APT。
二、Yum 主要运行在哪些平台上?
Yum 是为 RPM 系发行版 设计的,常见的有:
- CentOS 5/6/7 及之前
- Red Hat Enterprise Linux(RHEL)5/6/7
- Oracle Linux 旧版本
- Fedora 早期版本
后来,这些系统大多逐步过渡到 dnf:
- Fedora 22+:默认使用 dnf
- RHEL 8+ / CentOS 8+ / Rocky / AlmaLinux 等:底层是 dnf,保留 yum 命令作为兼容层(yum 实际是调用 dnf)
总结:
- 老的 RHEL/CentOS/Fedora:真正使用 yum
- 新的 RHEL/CentOS/Fedora:表面上是 yum,实质是 dnf
- Debian / Ubuntu 等 DEB 系发行版:不用 yum,用 apt/apt-get
三、在 Ubuntu 上可以用 yum 吗?
严格来说:
- Ubuntu 默认不使用 yum,也不需要 yum
- Ubuntu 是 Debian 系 ,包格式是
.deb,包管理工具是apt-get/apt/aptitude,底层是dpkg - Yum 是为 RPM 包(.rpm) 设计的,和
.deb并不兼容
能不能"装"一个 yum 到 Ubuntu?
理论上,你可以在 Ubuntu 上通过 apt 安装一个 yum 程序(某些仓库里有兼容版本),但:
- 这个 yum 在 Ubuntu 上几乎 没有实际意义
- 它无法直接用 Ubuntu 的 APT 仓库来管理
.deb包 - 你还需要另外配置 RPM 数据库和 RPM 仓库,非常不自然且没有必要
所以在实践中:
在 Ubuntu 上不使用 yum,正常用 apt 就好。
如果你想学 yum,一般是在 CentOS / RHEL / Fedora 等 RPM 系上操作。
四、Yum 的软件源来自哪里?
Yum 的软件包来源是一个或多个 仓库(repository,俗称"源")。每个仓库有一个配置文件,描述:
- 仓库名字和 ID
- 仓库服务器的 URL(HTTP/HTTPS/FTP/文件路径)
- 是否启用、是否检查 GPG 签名等
Yum 仓库配置文件位置
通常有两类位置:
-
主配置文件:
/etc/yum.conf
-
仓库配置文件(每个源一个 .repo 文件):
/etc/yum.repos.d/*.repo
例子:在 CentOS 7 中,系统自带仓库文件如:
/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Extras.repo
等等
.repo 文件示例(简化版):
ini
[base]
name=CentOS-$releasever - Base
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
字段含义简要:
[base]:仓库 IDname:仓库描述baseurl:仓库的 URL(可以是多个)enabled=1:是否启用(0 为禁用)gpgcheck=1:是否检查 GPG 签名gpgkey=...:GPG 公钥路径,用来校验包签名
常见源类型
- 官方源:系统发行方提供,如 CentOS 官方、RHEL 官方
- 第三方源 :
- EPEL(Extra Packages for Enterprise Linux)
- RPM Fusion(主要给 Fedora 提供多媒体类包等)
- 企业或组织内部的私有镜像源
五、Yum 和 Apt 是什么关系?有什么区别?
Yum 和 Apt 都是 包管理"前端工具",负责:
- 查询、安装、更新、删除软件包
- 自动计算依赖,组合一系列底层操作
1. 不同的发行版家族
- Yum/DNF 对应:RPM 系
- RHEL、CentOS、Fedora、Oracle Linux、Rocky、AlmaLinux...
- 包格式:
.rpm - 底层安装命令:
rpm
- APT 对应:Debian 系
- Debian、Ubuntu、Linux Mint、Kali 等
- 包格式:
.deb - 底层安装命令:
dpkg
简单来说:
环境决定工具:
- 用 RHEL / CentOS 就用 yum/dnf
- 用 Ubuntu / Debian 就用 apt
2. 概念对照
功能上,它们很多概念是对应的:
- Yum 的仓库配置:
/etc/yum.repos.d/*.repo
↔ Apt 的源列表:/etc/apt/sources.list,/etc/apt/sources.list.d/*.list yum install
↔apt installyum remove
↔apt removeyum update
↔apt upgrade/apt full-upgradeyum search
↔apt searchyum info
↔apt show/apt-cache show
本质差别在于背后管理的包格式和发行版生态不同。
六、如何在支持 Yum 的系统上安装/配置 Yum?
在 CentOS / RHEL 等系统上,yum 一般是系统自带的,不需要你手动安装。
检查 yum 是否存在
bash
yum --version
如果能输出版本信息,就说明 yum 已经安装好了。
在更新的系统,比如 CentOS 8 / RHEL 8:
bash
yum --version # 你会发现它实际上是 dnf 的一个"壳子"或软链接
dnf --version
七、Yum 的基本使用方法
下面以传统 yum 语法为主(在 dnf 上也基本通用)。
1. 更新仓库缓存
bash
yum makecache
- 从已配置的仓库获取包列表,构建本地缓存
- 类似 apt 的
apt update(注意:yum 的check-update是检查可更新列表)
2. 搜索软件包
bash
yum search 关键字
示例:
bash
yum search nginx
会列出名称或描述中包含"nginx"的软件包。
3. 查看软件包信息
bash
yum info 包名
示例:
bash
yum info nginx
可以看到版本、依赖、描述、仓库来源等。
4. 安装软件包
bash
sudo yum install 包名
示例:
bash
sudo yum install nginx
要安装多个包:
bash
sudo yum install nginx git vim
5. 删除(卸载)软件包
bash
sudo yum remove 包名
示例:
bash
sudo yum remove nginx
注意:和 apt 一样,remove 时要留心依赖项,避免不小心删掉关键组件。
6. 更新系统软件
-
更新指定包:
bashsudo yum update 包名 -
更新系统上所有可更新的软件包:
bashsudo yum update
通常会用于打安全补丁、升级版本等。
7. 列出已安装的软件包
bash
yum list installed
或只看某个包是否安装:
bash
yum list installed | grep nginx
8. 列出仓库中的可用包
bash
yum list available
或:
bash
yum list available nginx*
9. 清理缓存
bash
sudo yum clean all
- 删除本地缓存的包信息和已下载的 rpm 包,有利于释放磁盘空间,解决某些缓存导致的问题。
八、Yum 仓库的管理与配置(简要)
1. 列出所有仓库
bash
yum repolist all
enabled:启用的仓库disabled:禁用的仓库
只看启用的:
bash
yum repolist
2. 临时使用某个仓库
例如临时只使用 base 仓库:
bash
yum --disablerepo="*" --enablerepo="base" install 包名
3. 增加第三方仓库(例:EPEL)
在 CentOS 7:
bash
sudo yum install epel-release
安装完后会在 /etc/yum.repos.d/ 目录下增加 EPEL 的 repo 文件,这样就可以从 EPEL 仓库安装更多软件。
九、和 apt 命令的简易对照表
| 功能 | Yum/DNF 命令 | Apt 命令 |
|---|---|---|
| 更新源索引 / 缓存 | yum makecache / dnf makecache |
apt update |
| 检查可更新的软件 | yum check-update |
apt list --upgradable |
| 更新所有软件 | yum update / dnf upgrade |
apt upgrade / apt full-upgrade |
| 安装软件 | yum install pkg |
apt install pkg |
| 删除软件 | yum remove pkg |
apt remove pkg / apt purge |
| 搜索软件 | yum search keyword |
apt search keyword |
| 查看包信息 | yum info pkg |
apt show pkg |
| 列出已安装的软件 | yum list installed |
apt list --installed |
| 清理缓存 | yum clean all |
apt clean / apt autoclean |
十、学习与实践建议
- 在 Ubuntu 上学习 apt
如果你目前在用 Ubuntu,日常完全用 apt 就够了。yum 在 Ubuntu 上不合适。 - 如要学 yum,找台 CentOS / Rocky / AlmaLinux 虚拟机练习
用 VirtualBox、VMware 或云服务器装一台,比如 Rocky Linux 8/9,然后用以上命令逐个练习。 - 理解的是"思路",而非死记命令
apt 和 yum 的命令非常相似:- 装:install
- 删:remove
- 查:search / info
- 更:update
一旦你理解了一个体系(如 apt),切到另一个体系(如 yum)会很快上手。