介绍
YUM(Yellowdog Updater, Modified)起源于 Red Hat Linux 发行版 up2date
工具。
最初,up2date
是由 Red Hat 公司提供的用于管理系统更新的工具。然而,社区逐渐对 up2date
出现一些不满,主要是由于其使用体验和性能方面的一些限制。
在此背景下,YUM 由 Seth Vidal 创建,并在 Red Hat Linux 7.1 版本中首次亮相,取代 up2date
工具。YUM 的目标是提供一个更加灵活、高效且易于使用的软件包管理系统。“Yellowdog” 这个名字起源于 Linux 发行版 Yellow Dog Linux,是一款面向 PowerPC 架构的 Linux 发行版。
起源 | 发展
-
初期版本:
-
YUM 最初作为一个用于管理 Red Hat 系列发行版的软件包的命令行工具。
-
引入了一种称为 “yum repository” 的概念,用于存储和管理软件包。
-
-
社区支持:
- 由于 YUM 是开源的,很快在社区中得到了广泛的支持和参与。社区的贡献促使 YUM 不断改进和发展。
-
Yellowdog Linux 发行版:
- YUM 的名字中包含 “Yellowdog” 源自于 Yellow Dog Linux 这个发行版,在使用 PowerPC 架构的计算机上非常流行。
-
Fedora 和 CentOS:
- 随着 Red Hat 的发展,YUM 也成为 Fedora 发行版的默认包管理工具,后来被继承到了 CentOS 中。
- YUM 的逐渐成熟和普及,使得它成为了大多数基于 Red Hat 的 Linux 发行版的标配。
-
YUM 的进一步发展:
- 随着时间的推移,YUM 经历了多个版本的更新和改进。逐渐变得更加灵活、稳定,支持更多的功能,如插件、存储库管理等。
-
DNF 替代:
- 随着 Fedora 22 的发布,
dnf
(Dandified YUM)逐渐取代 YUM 作为 Fedora 发行版的默认包管理器。DNF 基于 YUM,并提供了一些改进和性能优化。
- 随着 Fedora 22 的发布,
YUM 的起源与发展是 Linux 发行版包管理领域中的一个重要故事。为 Red Hat 系列发行版和其他基于它们的系统提供了可靠、灵活的软件包管理解决方案。
yum
(Yellowdog Updater, Modified)是一个常用的包管理工具。主要用于在 Red Hat 系列的 Linux 发行版(如 CentOS 和 Fedora)中进行软件包的安装、更新和卸载。
运行逻辑
使用 yum
安装软件时,整个过程经历涉及步骤,包括获取软件包、解析依赖关系、下载软件包、安装软件包等。
-
仓库配置:
- 管理配置
yum
的软件仓库,指定包含所需软件包的仓库的 URL 或路径。
- 管理配置
-
软件包搜索:
- 运行
sudo yum install package_name
命令,yum
开始搜索指定软件包及其依赖项的信息。
- 运行
-
仓库同步:
yum
同步远程软件仓库的元数据,确保拥有最新的软件包列表和信息。
-
软件包信息获取:
yum
从仓库中获取软件包的元数据信息,包括名称、版本、依赖关系等。
-
依赖关系解析:
yum
解析软件包的依赖关系,确定安装所需的其他软件包。
-
依赖关系检查:
yum
检查系统上已安装的软件包,以确保满足软件包的所有依赖关系。
-
下载软件包:
- 如果所有依赖关系都满足,
yum
开始下载软件包及其依赖项。下载的软件包存储在本地的yum
缓存目录中。
- 如果所有依赖关系都满足,
-
GPG 密钥验证:
- 如果配置 GPG 密钥验证,
yum
将检查下载的软件包的数字签名,确保软件包的完整性和真实性。
- 如果配置 GPG 密钥验证,
-
软件包安装:
yum
开始安装下载的软件包及其依赖项。安装过程会在系统上复制、配置和设置软件包。
-
事务记录:
yum
记录安装过程的事务信息,以便用户随后可以查看、回滚或撤销已安装的软件包。
-
清理缓存:
- 安装完成后,
yum
可以选择清理掉之前下载的软件包,以释放磁盘空间。
- 安装完成后,
-
完成:
- 安装完成后,
yum
提示用户软件包已成功安装,可以开始使用。
- 安装完成后,
安装过程是 yum
自动化管理软件包的核心。yum
通过维护软件仓库、解析依赖关系、下载软件包等步骤,为我们提供方便、可靠的方法来管理和安装软件。
YUM 库
仓库(Repository)是YUM关键概念。软件仓库是一个集中存储软件包和相关元数据的地方,允许系统从统一的位置获取、安装和更新软件。yum
使用的是 RPM 包管理系统,而软件仓库是 RPM 包的集合。
-
定义
软件仓库是一个包含软件包及其相关信息(如软件包依赖关系、版本信息等)的集合。仓库一般是网络服务器,通过网络连接来访问。 -
Repository 类型
-
a. 官方仓库:
由 Linux 发行版提供的官方软件仓库,包含由发行版开发团队维护和支持的软件包。例如,CentOS、Fedora 和 Ubuntu 都有官方的软件仓库。 -
b. 第三方仓库:
除了官方仓库外,还有许多由社区或其他组织维护的第三方软件仓库。这些仓库可能包含一些不包含在官方仓库中的软件包,或者提供更新版本的软件包。
- Repository 的结构
软件仓库按照目录结构组织。其中包含了软件包的二进制文件、元数据文件(如 repodata
目录中的 repomd.xml
文件)、签名文件等。元数据文件包含软件包的信息,例如软件包名称、版本、依赖关系等。
- Repository URL:
系统通过仓库的 URL 访问仓库。URL 可以是 HTTP、FTP 或本地文件系统路径等。yum
配置文件中的仓库部分包含这些 URL。
- Repository 配置:
在 yum
中,软件仓库的配置信息存储在 /etc/yum.repos.d/
目录下的 .repo
文件中。每个文件对应一个软件仓库的配置。这些配置文件包含仓库的名称、URL、启用状态、GPG 密钥等信息。
- 使用 Repository:
使用 yum
命令时,系统会根据配置的仓库信息来查找、下载和安装软件包。配置不同的仓库,可以轻松地切换软件源,获取不同版本或来源的软件包。
- Repository Mirror:
由于软件仓库中的软件包一般很大,仓库的维护者会设置镜像站点,这些站点是仓库的拷贝。我们可以选择使用最近或网络连接更快的镜像站点来加快软件包的下载速度。
注意:
- 定期更新软件仓库获取最新的软件包和安全更新。
- 使用受信任的仓库,防止安全问题和软件包不一致性。
Ending