RPM:RedHat Package Manager的简称,是一种数据库记录的方式的管理机制。当需要安装的软件的依赖软件都已经安装,则继续安装,否则不予安装。
特点:
1.已经编译并打包完成
2.软件的信息记录在数据库下,方便查询、升级与安装
但有个软件依赖的问题,如安装A时需要B,安装B时又需要C,安装C时又需要A。
解决以上问题就需要同时安装或YUM在线升级
3.CentOS先将发布的软件放置到YUM服务器上,然后分析这些软件的依赖性,将软件内的信息记录下来(header).然后将这些信息分析后记录成软件相关性的清单列表。这些清单和软件放在容器中(repository).
当客户端需要安装软件时,客户端主机会主动向网络上的yum服务器的容器地址下载清单列表,通过清单列表与本地rpm数据库已存在的软件爱你数据相比较。就解决了软件之间的依赖性了。
1.已经编译并打包完成
2.软件的信息记录在数据库下,方便查询、升级与安装
但有个软件依赖的问题,如安装A时需要B,安装B时又需要C,安装C时又需要A。
解决以上问题就需要同时安装或YUM在线升级
3.CentOS先将发布的软件放置到YUM服务器上,然后分析这些软件的依赖性,将软件内的信息记录下来(header).然后将这些信息分析后记录成软件相关性的清单列表。这些清单和软件放在容器中(repository).
当客户端需要安装软件时,客户端主机会主动向网络上的yum服务器的容器地址下载清单列表,通过清单列表与本地rpm数据库已存在的软件爱你数据相比较。就解决了软件之间的依赖性了。
yum运行原理
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服务器上的rpm包"清单",然后把"清单"下载保存到yum自己的cache里面,根据/etc/yum.conf里配置(默认是在/var/cache/yum下面),每次调用yum装包的时候都会去这个cache目录下去找"清单",根据"清单"里的rpm包描述从而来确定安装包的名字,版本号,所需要的依赖包等,然后再去yum服务器下载rpm包安装。(前提是不存在rpm包的cache)
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服务器上的rpm包"清单",然后把"清单"下载保存到yum自己的cache里面,根据/etc/yum.conf里配置(默认是在/var/cache/yum下面),每次调用yum装包的时候都会去这个cache目录下去找"清单",根据"清单"里的rpm包描述从而来确定安装包的名字,版本号,所需要的依赖包等,然后再去yum服务器下载rpm包安装。(前提是不存在rpm包的cache)