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.mzph.cn/news/669738.shtml

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

相关文章

ubuntu20安装mysql8

1.安装 sudo apt update sudo apt install mysql-server-8.0 -y2.查看运行状态 yantaoubuntu20:~$ sudo systemctl status mysql ● mysql.service - MySQL Community ServerLoaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset:>Active: active …

10英寸安卓车载平板电脑丨ONERugged车载工业平板:解决农业工作效率

农业是人类社会的基石之一,而农业工作效率的提升一直是农民和农业专业人士关注的重要议题。随着技术的不断进步,车载工业平板成为了解决农业工作效率的创新解决方案。本文将探讨车载工业平板如何为农业带来巨大的改变,提高农民的工作效率和农…

常用数字处理格式校验

1、前端校验 1.1 要求为数字类型&#xff08;不限位数与正负&#xff09; input输入框添加 type“number” <el-input type"number"/>当typenumber时&#xff0c;仍然可以输入字母e或E。解决方法是&#xff1a;给typenumber的输入框添加一个正则表达式&…

Android Studio 安装Flutter插件但是没法创建项目

Android Studio 安装Flutter插件但是没法创建项目 如果你在Android Studio已经安装了Dart、Flutter插件&#xff0c;但是不能创建Flutter项目。 原因是因为Android Studio的版本更新&#xff0c;Android APK Support这个插件没被选中。 一旦勾选这个插件之后&#xff0c;就能…

python创建pdf文件

目录 一&#xff1a;使用reportlab库 二&#xff1a;使用使pdf库 在Python中生成PDF文件可以使用多种库&#xff0c;其中最常用的是reportlab和fpdf。以下是使用这两个库生成PDF文件的示例代码&#xff1a; 一&#xff1a;使用reportlab库 1&#xff1a;写入文字信息 from r…

ubuntu22.04@laptop OpenCV Get Started

ubuntu22.04laptop OpenCV Get Started 1. 源由2. 步骤3. 预期&展望4. 参考资料 1. 源由 OpenCV在学校的时候接触过&#xff0c;不过当时专注在物理、研究方面&#xff0c;没有好好的学习下。 这次借后续视频分析刚性需求&#xff0c;对OpenCV做个入门的学习和研读&#…

容器化技术基础概念:雪花服务器与凤凰服务器

雪花服务器与凤凰服务器&#xff1a;两种软件部署领域的基础设施对比 在软件部署领域&#xff0c;服务器管理在正常运行时间、效率和安全性方面发挥着关键作用。存在两种截然不同的方法&#xff1a;雪花服务器和凤凰服务器。了解它们之间的区别将帮助您选择最适合您需求的策略…

c++之说_10|自定义类型 union 联合体

之前我们说了一些 struct 结构体 现在来了解新的自定义类型 union 联合体 语法 union ptr {void* fptr;CLassFunPtr p;FunPtr p2;ptr& operator(CLassFunPtr ptr){p ptr;return *this;}ptr& operator(FunPtr Fptr){p2 Fptr;return *this;} } FunPtr_; 我们看到了…

vue+vite项目,无法使用绝对地址动态导入

博主的桌面工具软件已经正式开发&#xff0c;获取方式&#xff1a; 可以关注我的小程序【中二少年工具箱】获取。&#xff08;若小程序更新有延迟&#xff0c;可先收藏小程序&#xff09; 通过下载链接 百度网盘: 链接&#xff1a;https://pan.baidu.com/s/15zDnSoEzJGSZLjpD…

C语言之随心所欲打印三角形,金字塔,菱形(倒金字塔)

个人主页&#xff08;找往期文章包括但不限于本期文章中不懂的知识点&#xff09;&#xff1a; 我要学编程(ಥ_ಥ)-CSDN博客 目录 三角形 金字塔 倒金字塔 菱形 三角形 题目&#xff1a;根据输入的行数打印对应的三角形。&#xff08;用 * 号打印&#xff09; #includ…

在windows平台上mysql的安装教程

1.下载 mysql下载网址&#xff1a;https://dev.mysql.com/downloads/installer/ 这里直接选择的是mysql的社区版。自己使用直接选择免费的就行 直接选择下载 2.安装过程 选择Server only 就行 下一步 下一步 下一步&#xff0c;选择弱密码把&#xff0c;方便学习和自己使用 设置…

Redis实现:每个进程每30秒执行一次任务

前言 项目中要实现每一进程每30秒执行一次 代码实现: public class DistributedScheduler {private final RRedisClient redisson;private final String processKeyPrefix; // 例如 "process_"public DistributedScheduler(RRedisClient redisson) {this.redisson…

蓝桥杯Web应用开发-浮动与定位

浮动与定位 浮动布局比较灵活&#xff0c;不易控制&#xff0c;而定位可以控制元素的过分灵活性&#xff0c;给元素一个具体的空间和精确的位置。 浮动 我们使用 float 属性指定元素沿其容器的左侧或右侧放置&#xff0c;浮动布局常见取值如下&#xff1a; • left&#xff0…

K8S之Namespace的介绍和使用

Namespace的理论和实操 Namespace理论说明Namespace实操创建、查看命名空间使用ResouceQuota 对Namespace做资源限额更多ResouceQuota 的使用 Namespace理论说明 命名空间定义 K8s支持多个虚拟集群&#xff0c;它们底层依赖于同一个物理集群。 这些虚拟集群被称为命名空间&…

seatunnel数据集成(一)简介与安装

seatunnel数据集成&#xff08;一&#xff09;简介与安装seatunnel数据集成&#xff08;二&#xff09;数据同步seatunnel数据集成&#xff08;三&#xff09;多表同步seatunnel数据集成&#xff08;四&#xff09;连接器使用 1、背景 About Seatunnel | Apache SeaTunnel …

Docker下安装GitLab

极狐GitLab Docker 镜像 | 极狐GitLab 安装所需最小配置 内存至少4G 系统内核至少3.10以上 uname -r 命令可以查看系统内核版本 安装Docker 1.更新 yum源 yum update 2.安装依赖(如果在操作第三步的时候提示yum-config-manager 未找到命令 就安装下面依赖) yum instal…

R语言学习case11:ggplot 置信区间(包含多子图)

ggplot Geometric objects How are these two plots similar? 两个图都包含相同的x变量、相同的y变量&#xff0c;并且描述相同的数据。但是这两个图并不相同。每个图使用不同的可视化对象来表示数据。在ggplot2语法中&#xff0c;我们说它们使用不同的geoms。 geom是绘图…

=代码分享=

//建堆 void AdjustDwon(int a[], int n, int i) { int root i; //默认满足条件的是左孩子 int child root * 2 1; while (child < n) { //如果右孩子更符合条件&#xff0c;就改 if (child1<n&&a[child 1] > a[child]) { child 1; } if (a[child] > …

开发实践10_PurchaseOrder笔记

0 NewProj 01 将source_data材料包放到项目根目录。将其中的static文件夹剪切到根目录。将剩下的temps文件剪切到templates文件夹下。可删source_data。后续用默认sqlite。 STATIC_URL "/static/" STATICFILES_DIRS [os.path.join(BASE_DIR, static) ] 02 pytho…

使用 Python、Elasticsearch 和 Kibana 分析波士顿凯尔特人队

作者&#xff1a;来自 Jessica Garson 大约一年前&#xff0c;我经历了一段压力很大的时期&#xff0c;最后参加了一场篮球比赛。 在整个过程中&#xff0c;我可以以一种我以前无法做到的方式断开连接并找到焦点。 我加入的第一支球队是波士顿凯尔特人队。 波士顿凯尔特人队是…