服務端 repodata/ 目錄下的一系列文件,就是yum能否自動解決依賴關係的關鍵。
repodata/ 目錄包含以下幾部分:
primary.xml.gz 、filelists.xml.gz 、other.xml.gz 、repomd.xml 、comps.xml
示例:安裝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"