亲爱的 askUbuntu 社区,
在我们的实验室中,我们在 Ubuntu 20.04 LTS 上使用了很多外部软件和配置。为了向每个同事提供相应的软件包(现在我们有多达 40 个自定义软件包),我们设置了一个自己的本地 APT 镜像并将其链接到我们的 PXE 启动。这非常有效,因为我们甚至创建了一个自己的 git 存储库来管理我们的 APT 镜像(我们每周更改软件包及其依赖项,拥有自己的 apt 镜像可以为每个人节省大量时间)。不幸的是,我们的软件包管理(提供 apt 镜像)包含很多自己的脚本:如果有人更改了软件包,脚本会获取这个更改后的软件包,在我们的服务器中替换它,将其移动到我们的 apt 镜像,另一个脚本会使用
sudo dpkg-scanpackages amd64 | gzip > amd64/Packages.gz
更新 Packages.gz 文件,该文件主要告诉镜像包包含哪些内容以及它们如何相互依赖。如前所述,这很好用,但应用dpkg-扫描软件包在我们的包裹上(很多包裹都包含几千兆字节)需要几个小时!因此,如果有人更改了一个包中的哪怕一个很小的依赖项,我们都必须应用此命令(该命令会覆盖软件包.gz文件(在我们的 apt 镜像上从头构建它)对我来说完全没有必要。跳过这个问题,我试图找到一个更复杂的解决方案来解决这个问题,但我找不到 Debian 打包系统的更新功能(或dpkg-扫描软件包) 以节省时间。大家都知道,开发过程中时间非常宝贵 :)
也许我的想法是错误的,但我内心深处觉得更好的解决方案用于更新软件包.gz在我们的 apt 镜像上如果我们只是想改变例如 3 个 pkgs)[一些信息:我们自己的很多包都需要外部依赖,其中一些相互依赖,这使得对文件的手动操作并不容易]有谁有解决这个问题的想法吗?
额外的想法:为什么需要这么多时间dpkg-扫描软件包是为每个软件包创建唯一的哈希值。apt 镜像是否有(可能)选项可以“解决”此哈希值创建问题?
最亲切的问候!