YUM | 起源 | 发展 | 运行逻辑

介绍

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 发行版。

起源 | 发展

  1. 初期版本:

    • YUM 最初作为一个用于管理 Red Hat 系列发行版的软件包的命令行工具。
      在这里插入图片描述

    • 引入了一种称为 “yum repository” 的概念,用于存储和管理软件包。
      在这里插入图片描述

  2. 社区支持:

    • 由于 YUM 是开源的,很快在社区中得到了广泛的支持和参与。社区的贡献促使 YUM 不断改进和发展。
  3. Yellowdog Linux 发行版:

    • YUM 的名字中包含 “Yellowdog” 源自于 Yellow Dog Linux 这个发行版,在使用 PowerPC 架构的计算机上非常流行。
  4. Fedora 和 CentOS:

    • 随着 Red Hat 的发展,YUM 也成为 Fedora 发行版的默认包管理工具,后来被继承到了 CentOS 中。
    • YUM 的逐渐成熟和普及,使得它成为了大多数基于 Red Hat 的 Linux 发行版的标配。
  5. YUM 的进一步发展:

    • 随着时间的推移,YUM 经历了多个版本的更新和改进。逐渐变得更加灵活、稳定,支持更多的功能,如插件、存储库管理等。
  6. DNF 替代:

    • 随着 Fedora 22 的发布,dnf(Dandified YUM)逐渐取代 YUM 作为 Fedora 发行版的默认包管理器。DNF 基于 YUM,并提供了一些改进和性能优化。

YUM 的起源与发展是 Linux 发行版包管理领域中的一个重要故事。为 Red Hat 系列发行版和其他基于它们的系统提供了可靠、灵活的软件包管理解决方案。

yum(Yellowdog Updater, Modified)是一个常用的包管理工具。主要用于在 Red Hat 系列的 Linux 发行版(如 CentOS 和 Fedora)中进行软件包的安装、更新和卸载。

运行逻辑

使用 yum 安装软件时,整个过程经历涉及步骤,包括获取软件包、解析依赖关系、下载软件包、安装软件包等。

  1. 仓库配置:

    • 管理配置 yum 的软件仓库,指定包含所需软件包的仓库的 URL 或路径。
  2. 软件包搜索:

    • 运行 sudo yum install package_name 命令,yum 开始搜索指定软件包及其依赖项的信息。
  3. 仓库同步:

    • yum 同步远程软件仓库的元数据,确保拥有最新的软件包列表和信息。
  4. 软件包信息获取:

    • yum 从仓库中获取软件包的元数据信息,包括名称、版本、依赖关系等。
  5. 依赖关系解析:

    • yum 解析软件包的依赖关系,确定安装所需的其他软件包。
  6. 依赖关系检查:

    • yum 检查系统上已安装的软件包,以确保满足软件包的所有依赖关系。
  7. 下载软件包:

    • 如果所有依赖关系都满足,yum 开始下载软件包及其依赖项。下载的软件包存储在本地的 yum 缓存目录中。
  8. GPG 密钥验证:

    • 如果配置 GPG 密钥验证,yum 将检查下载的软件包的数字签名,确保软件包的完整性和真实性。
  9. 软件包安装:

    • yum 开始安装下载的软件包及其依赖项。安装过程会在系统上复制、配置和设置软件包。
  10. 事务记录:

    • yum 记录安装过程的事务信息,以便用户随后可以查看、回滚或撤销已安装的软件包。
  11. 清理缓存:

    • 安装完成后,yum 可以选择清理掉之前下载的软件包,以释放磁盘空间。
  12. 完成:

    • 安装完成后,yum 提示用户软件包已成功安装,可以开始使用。

安装过程是 yum 自动化管理软件包的核心。yum 通过维护软件仓库、解析依赖关系、下载软件包等步骤,为我们提供方便、可靠的方法来管理和安装软件。

YUM 库

仓库(Repository)是YUM关键概念。软件仓库是一个集中存储软件包和相关元数据的地方,允许系统从统一的位置获取、安装和更新软件。yum 使用的是 RPM 包管理系统,而软件仓库是 RPM 包的集合。

  1. 定义
    软件仓库是一个包含软件包及其相关信息(如软件包依赖关系、版本信息等)的集合。仓库一般是网络服务器,通过网络连接来访问。

  2. Repository 类型

  • a. 官方仓库:
    由 Linux 发行版提供的官方软件仓库,包含由发行版开发团队维护和支持的软件包。例如,CentOS、Fedora 和 Ubuntu 都有官方的软件仓库。

  • b. 第三方仓库:
    除了官方仓库外,还有许多由社区或其他组织维护的第三方软件仓库。这些仓库可能包含一些不包含在官方仓库中的软件包,或者提供更新版本的软件包。

  1. Repository 的结构

软件仓库按照目录结构组织。其中包含了软件包的二进制文件、元数据文件(如 repodata 目录中的 repomd.xml 文件)、签名文件等。元数据文件包含软件包的信息,例如软件包名称、版本、依赖关系等。

  1. Repository URL:

系统通过仓库的 URL 访问仓库。URL 可以是 HTTP、FTP 或本地文件系统路径等。yum 配置文件中的仓库部分包含这些 URL。

  1. Repository 配置:

yum 中,软件仓库的配置信息存储在 /etc/yum.repos.d/ 目录下的 .repo 文件中。每个文件对应一个软件仓库的配置。这些配置文件包含仓库的名称、URL、启用状态、GPG 密钥等信息。

  1. 使用 Repository:

使用 yum 命令时,系统会根据配置的仓库信息来查找、下载和安装软件包。配置不同的仓库,可以轻松地切换软件源,获取不同版本或来源的软件包。

  1. Repository Mirror:

由于软件仓库中的软件包一般很大,仓库的维护者会设置镜像站点,这些站点是仓库的拷贝。我们可以选择使用最近或网络连接更快的镜像站点来加快软件包的下载速度。

注意:

  • 定期更新软件仓库获取最新的软件包和安全更新。
  • 使用受信任的仓库,防止安全问题和软件包不一致性。

Ending


~喜欢的话,请收藏 | 关注(✪ω✪)~
~万一有趣的事还在后头呢,Fight!!(o^-^)~''☆ミ☆ミ~……

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/455399.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5.0 ZooKeeper 数据模型 znode 结构详解

数据模型 在 zookeeper 中,可以说 zookeeper 中的所有存储的数据是由 znode 组成的,节点也称为 znode,并以 key/value 形式存储数据。 整体结构类似于 linux 文件系统的模式以树形结构存储。其中根路径以 / 开头。 进入 zookeeper 安装的 …

实践:微服务版本升级步骤以及maven仓库相关概念

进行微服务开发的时候&#xff0c;上层服务依赖于下层的服务的api&#xff0c;比如适配属于上层服务&#xff0c;用户属于下层服务。 例子: 上层服务 <!--订单管理微服务api依赖--> <dependency><groupId>com.jn.server</groupId><artifactId>…

【翻译】Processing安卓模式的安装使用及打包发布(内含中文版截图)

原文链接在下面的每一章的最前面。 原文有三篇&#xff0c;译者不知道贴哪篇了&#xff0c;这篇干脆标了原创。。 译者声明&#xff1a;本文原文来自于GNU协议支持下的项目&#xff0c;具备开源二改授权&#xff0c;可翻译后公开。 文章目录 Install&#xff08;安装&#xff0…

使用PDFBox实现pdf转其他图片格式

最近在做一个小项目&#xff0c;项目中有一个功能要把pdf格式的图片转换为其它格式&#xff0c;接下来看看用pdfbox来如何实现吧。 首先导入pdfbox相关依赖&#xff1a; <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</a…

假期刷题打卡--Day24

1、MT1198阶乘差 求1!-2!-3!-…-n! 格式 输入格式&#xff1a; 输入为整型 输出格式&#xff1a; 输出为整型 样例 1 输入&#xff1a; 5输出&#xff1a; -151 分析过程 看到这个题目的时候&#xff0c;感觉这个题目出现的没有必要&#xff0c;就和前面阶乘和一样的…

7.0 Zookeeper 客户端基础命令使用

zookeeper 命令用于在 zookeeper 服务上执行操作。 首先执行命令&#xff0c;打开新的 session 会话&#xff0c;进入终端。 $ sh zkCli.sh 下面开始讲解基本常用命令使用&#xff0c;其中 acl 权限内容在后面章节详细阐述。 ls 命令 ls 命令用于查看某个路径下目录列表。…

前端JavaScript篇之如何判断一个对象是否属于某个类?

目录 如何判断一个对象是否属于某个类&#xff1f; 如何判断一个对象是否属于某个类&#xff1f; 要判断一个对象是否属于某个类&#xff0c;我们可以使用以下几种方法&#xff1a; 使用instanceof运算符&#xff1a; instanceof运算符用于检查一个对象是否是某个类的实例。它…

[设计模式Java实现附plantuml源码~结构型]实现对象的复用——享元模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…

我在项目中使用Redis的几个场景

目录 缓存 会话存储 分布式锁 消息队列 位统计 计数器 排行榜 缓存 缓存的目的是为了提高系统响应速度、减少数据库等资源的压力&#xff0c;redis作为键值对形式的内存数 据库&#xff0c;可以提供非常快速的读取速度&#xff0c;使得它成为存储热点数据或频繁访问数…

mysql8通过binlog恢复数据

参考资料: 通过binlog恢复误update的数据(一)_binlog 恢复update-CSDN博客 记录一次工作中的误删除&#xff0c;使用binlog恢复数据的问题。 1&#xff1a;找到mysql8的binlog文件。 2&#xff1a;把binlog文件转换为初始sql文件 mysqlbinlog -vv --base64-outputdecode-row…

EMNLP 2023精选:Text-to-SQL任务的前沿进展(上篇)——正会论文解读

导语 本文记录了今年的自然语言处理国际顶级会议EMNLP 2023中接收的所有与Text-to-SQL相关&#xff08;通过搜索标题关键词查找得到&#xff0c;可能不全&#xff09;的论文&#xff0c;共计12篇&#xff0c;包含5篇正会论文和7篇Findings论文&#xff0c;以下是对这些论文的略…

PDF文件格式(一):新版格式交叉引用表

PDF交叉引用表是PDF的重要组成部分&#xff0c;本文介绍的是新交叉引用表&#xff0c;这种引用表的格式是PDF的obj格式&#xff0c;内容是被压缩存放在obj下的stream中&#xff0c;因此比常规的引用表格式复杂。下面就开始介绍这种交叉引用表的格式和解析的方法&#xff1a; 1…