软件包的管理--YUM简介与工作机制
程序包的前端管理工具:Yum 全称:(Yellowdog Updata Modifier)
前端管理工具并不能取代软件管理器,而仅是作为软件管理器补充,而 Yum 在的工作还需要依赖于 rpm 软件管理器完成安装 。
Yum:解决依赖关系问题,自动下载软件包,它是基于 C/S 架构(客户端/服务端)。
C=client S=ftp\http\file
Yum 能够自动解决依赖关系,当需要安装某个程序时,不管该程序包有多少层次的或依赖多少个程序包,Yum 都能够找到所被依赖的程序包,并在本地完成需要安装的程序,Yum 能够自动解决依赖关系,那么程序包是怎么来的?Yum 的自动解决依赖的过程是依赖于某一种机制,在某一个地方存放着程序包。
需要文件服务器(主要共享 rpm 包),这个文件服务器能够通过 Yum 所支持的文件共享机制将各 rpm 包通过文件服务共享,Yum 作为客户端能够通过文件服务共享获取所需要的任意的 rpm 包,而这个文件服务器所输出的路径,给 Yum 工作提供后端支持,面这后端支持称为 repository“Yum 仓库”。
但仅靠一个共享仓库是不能够完成 Yum 的工作,Yum 需要自行发现各 rpm 包的依赖关系,并且根据其依赖关系到仓库中找到所被这依赖的程序包,那么仓库有多少个 rpm 包,各 rpm 包的这依赖关系是什么?是否有依赖仓库内并不存在的 rpm 包?这些都需要做事先的定义,也就是说明,这种依赖关系并不是 Yum 自身就能够得知的,Yum 也是通过查询某个文件后得知的。
因此,仓库中不仅有 rpm 包,也就是说,Yum 当前使用着仓库中的每一个 rpm 包的名称、安装后能提供那些文件、程序的依赖关系、等等。都存储在一些文件当中,Yum 在使用任何一个 Yum 仓库时,首先会获取这些元数据文件,根据元数据文件分析需要安装的程序是否有依赖关系,所依赖的程序能够有多少存在仓库中,有多少本地系统是已经安装了的,根据后则下载所需要的程序包。
Yum 工作机制:
在 Yum 客户端上启动 Yum 安装某个程序包时,Yum 在收到发起安装请求时,会根据本地配置文件中挃定可使用的 Yum 仓库,把仓库的各元数据文件下载到并缓存本地,以便快速分析,而后根据本地系统安装的程序包结果进行分析,需要安装的程序有多少个依赖关系程序包在本地系统上已经安装的,还剩余多少个尚未安装,然后到 Yum 仓库获取尚未安装的程序包,并在本地安装。
在获取服务端的元数据文件并缓存本地,Yum 在下次安装时再不用再去在服务端下载,直接查询本地缓存的即可,但是 Yum 每次查询本地缓存的元数据文件时,也会到服务端根据元数据文件的 MD5 码做检测对比,如果服务端的元数据文件发生了改变,Yum 会自动下载元数据到本地,如果没有改变,那么不再下载,直接使用本地的元数据文件,也可以手动清除 Yum 的缓存元数据文件。