1.yum的工作需要两部分来合作,一部分是yum服务器,还有就是client的yum工具。下面分别介绍两部分工作原理。
-
yum服务器
所有要发行的rpm包都放在yum服务器上以提供别人来下载,rpm包根据kernel的版本号,cpu的版本号分别编译发布。yum服务器只要提供简单的下载就可以了,ftp或者httpd的形式都可以。yum服务器有一个最重要的环节就是整理出每个rpm包的基本信息,包括rpm包对应的版本号,conf文件,binary信息,以及很关键的依赖信息。在yum服务器上提供了createrepo工具,用于把rpm包的基本概要信息做成一张"清单",这张"清单""就是描述每个rpm包的spec文件中信息。
-
yum client端
client每次调用yum install或者search的时候,都会去解析/etc/yum.repos.d下面所有以.repo结尾的配置文件(即yum源),这些配置文件指定了yum服务器的地址。yum会定期去"更新"yum服务器上的rpm包"清单",然后把"清单"下载保存到yum自己的cache里面,根据/etc/yum.conf里配置(默认是在/var/cache/yum下面),每次调用yum装包的时候都会去这个cache目录下去找"清单",根据"清单"里的rpm包描述从而来确定安装包的名字,版本号,所需要的依赖包等,然后再去yum服务器下载rpm包安装。(前提是不存在rpm包的cache)
2.下面是Yum的工作原理简要说明:
-
软件源配置:Yum通过配置软件源来确定软件包的获取位置。软件源是存储软件包的服务器,可以是官方提供的公共服务器或者本地搭建的私有服务器。
-
查询可用软件包:Yum会在软件源中查询可用的软件包列表,并检查本地系统已安装的软件包版本信息。
-
依赖关系解决:当用户想安装某个软件包时,Yum会自动检查该软件包所依赖的其他软件包是否已经安装。如果有缺失的依赖包,Yum会自动解析并下载安装这些依赖包。
-
下载与安装:Yum会根据用户的需求,选择下载相应的软件包到本地系统,并进行安装。Yum还可以处理软件包的更新和卸载操作。
-
缓存管理:为了提高效率和避免重复下载,Yum会将已下载的软件包缓存在本地系统中。这样在后续的操作中,如果发现已缓存的软件包版本与需要的版本一致,Yum会直接使用缓存的软件包而不重新下载。