服务端 repodata/ 目录下的一系列文件,就是yum能否自动解决依赖关系的关键。
repodata/ 目录包含以下几部分:
primary.xml.gz 、filelists.xml.gz 、other.xml.gz 、repomd.xml 、comps.xml
示例:yum安装ntpdate指令过程
1. 在primary.xml里找到需要安装的包
2. 在primary.xml中获取到安装包和依赖包列表
3. 在primary.xml中根据location href获取安装包路径。
4. 在primary.xml中获取依赖包名和对应的pkgid,在filelists.xml中获取到配置文件。
各文件包含内容
1. repomd.xml包含primary/filelist/other/group时间戳、检验等等之类。
2. primary.xml里包含所有rpm文件列表、依赖关系、软件包安装列表
3. filelists.xml 包含所有rpm包的配置文件列表,如下图,以vsftpd为例。
4. other.xml 里包含软件包其他信息,比如更改记录。
如下图:vsftp 的各个版本信息及更新时间。
5. comps.xml 包含软件包组的列表,控制软件包group安装。
yum groupinstall "GNOME Desktop"
</article>