Ubuntu存储库的结构是什么?


29

Ubuntu存储库中的文件如何组织?存储库中有哪些重要文件?当存储库变得不一致,损坏或正在同步时,会发生什么?

Answers:


19

根据apt来源上的deb行,apt将获取:

它验证Release.gpg是否是Release文件的有效签名,以及Packages.gz内容是否与Release文件上存在的完整性校验和匹配。如果不匹配,则报告存储库签名完整性失败。

根据先前检索到的Packages.gz内容确定所请求软件包的软件包文件名。它已下载,并且其内容校验和必须与Packages.gz校验和的内容匹配,否则将报告完整性故障。

您的最后一个问题不是关于镜像结构本身,而是关于镜像同步,这取决于镜像过程。可以使用临时位置进行同步,而在同步期间不会破坏存档的完整性。我不确定是否所有的Ubuntu镜像都能做到这一点。


不幸的是,链接断开了
蓝蓝的

他们不破,他们只是模板,您将需要更换的“释放”,“部件”,二进制”,等等,这是动态的领域。
若奥·平托

18

Joao回答了我问题的后半部分,因此我自己进行了调查。在根级别,有四个目录和一个文件。

root
| -- dists
| -- pool
| -- indices
| -- project
| -- ls-lr.gz

(在我的大学仓库中,也只有前两个条目。因此,后三个条目对仓库的功能似乎不是必需的。)

该文件ls-lr.gz包含在ls -lr存储库根目录上运行的命令输出。

dists目录似乎包含大多数元数据,包括所有packages.gz文件(包含软件包列表)和Release.gpg / Release(对软件包进行签名)。(感谢Joao提供的信息)

pool目录包含实际的.deb文件。该组织是/pool/[section]/[letter]/[group]/packagename.deb。因此python-subversion包的实际位置是/pool/main/s/subversion/python-subversion_1.3.2-3ubuntu2%7edapper1_amd64.deb,因为subversion是python-subversion包的组,而s是subversion的第一个字母。

projects目录似乎包含一些文件,详细说明了如何将镜像同步到原始存储库。

indices目录包含许多文件,其中大多数为空。非空文件似乎为软件包提供了一些额外的元数据。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.