分布式构建系统

分布式构建系统

目前流行的 Linux 发行版(如 Ubuntu、Debian、RedHat 等)中使用了哪些分布式构建工具?

例如,我们有大量具有依赖项的包,并尝试为发行版的新版本编译所有这些包。将它们一一建造起来需要花费很多时间。我听说过 distcc,但它在服务器之间共享一个项目编译,以实现分布式并行构建。

是否有任何工具可以分析包之间的依赖关系(例如创建图表)并创建使用包级并行性构建的时间表?例如,我们有包 p1、p2、p3、p4 和两台服务器。如果彼此不依赖,一台服务器会同时构建 p1 和另一台 p2。

我需要生产中使用的项目的示例。

答案1

每个发行版往往都有自己的一套工具,这里没有太多共享软件。

Debian 使用wanna-buildbuilddsbuild,您会发现它们都有记录在 Debian 网站上(也请点击链接)。wanna-build维护构建队列,buildd选择要构建的包并sbuild构建它。wanna-build使用以下命令跟踪缺少依赖项的包“等待”状态;包可以直接进入该状态(如果wanna-build它本身可以识别缺少依赖项),或者在构建因缺少依赖项而失败后进入该状态。有一个教程如果您想建立本地构建基础设施,则可用。

Fedora 使用浩二,即广泛记录。它也是涉及许多不同的组件,包括koji-hub集中式数据库前端,以及kojid驱动构建的 。我对 Koji 不太熟悉,所以我不知道它是如何集成来处理构建状态的。

其他发行版有其他构建系统,例如发射台。它们都处理您所关心的相同问题:所有包的集中视图、多个构建系统以及接收构建结果的集中存储库。

相关内容