Poudriere: 尝试获取依赖项而不是在本地构建它们

创建于 2015-05-31  ·  21评论  ·  资料来源: freebsd/poudriere

在提交更改之前测试端口是昂贵的。 因此,正在使用非默认选项构建几个端口的覆盖。

  • /head是一个快速移动的目标, ports -u经常渲染许多过时的
  • Tier1 支持包括4 * 2 = 8平台组合
  • redports.org (CI) 在一年前关闭后仍然无法使用
  • 回购布局尚不支持NO_ARCH , NO_OSREL , NO_OPSYS
  • 某些端口可能需要大量内存/时间/磁盘活动来构建

幸运的是,pkg.freebsd.org 已经提供了现成的软件包。 为什么不利用呢? 警告:仅当本地端口树和远程快照当时的差异不大时才有用。

Performance

最有用的评论

它尚未在 Poudriere 中实施,但我已安排在下一个版本之后实施。

所有21条评论

是的,这是一个想要的功能。 我称之为“包播种”。 pkg.freebsd.org 构建脚本实际上自己做这件事,所以我们可以在每次构建之间在不同的系统上构建。 它一直在 TODOLIST 上,但尚未在 Poudriere 中实施。

最近也开始积极使用 poudriere 为自己构建包,并且希望-f pkg-list.txt具有类似的功能,如果包的一部分具有更改的选项,然后在本地构建它们,并使用默认选项获取上游 repo。

这是否已经在一个分支中实现了,我想帮助测试它。

它尚未在 Poudriere 中实施,但我已安排在下一个版本之后实施。

嗨, @bdrewery这个补丁有什么更新吗? 真的需要你对我如何改进这个补丁的反馈。 任何提示表示赞赏。 非常感谢。

抱歉最近比较忙。 我会在接下来的几周内尝试查看。

有什么新信息吗? 谢谢!

这将是非常好的功能。 我刚刚更新到 3.3.99.20190311,但没有看到 pkg 播种的选项。 有关于此功能的消息吗?

与此同时,我正在使用一些hackish方式来做到这一点: https :

好吧,尝试poudriere testport这需要 GCC 9.x 和 Clang 8.0 来构建....
上次我需要测试它花了大约一天的时间。

@bdrewery 有没有希望尽快看到这个功能?

不太可能,因为我的重点在其他地方,例如在增量构建和分布式支持中构建较少。

这个问题有更新吗? 有什么我们可以帮忙的吗?

对不起另一个“我也是”。 我确实喜欢构建一些我正在使用的端口,因为我已经在它们上面选择了特殊的标志。 像 Mesa 等人的事情。 不过需要一个特定的 LLVM 版本,而且,我真的不想或不需要自己构建它。 因此,如果我可以告诉 poudriere 某些选定的端口永远不要构建它们,而是获取它们,那就太好了。

否则,我的跑步会像这样结束:

[freebsd:12:x86:64-default] [2020-06-22_09h45m06s] [parallel_build:] Queued: 1616 Built: 97   Failed: 0    Skipped: 0    Ignored: 0    Tobuild: 1519  Time: 02:21:47
        [01]: devel/llvm80              | llvm80-8.0.1_3            build           (01:50:32 / 01:51:56)
        [02]: devel/llvm90              | llvm90-9.0.1_1            build           (01:50:59 / 01:52:03)
        [03]: lang/gcc9                 | gcc9-9.3.0_1              build           (01:51:28 / 01:51:54)

我想避免这种毫无意义的流失。 谢谢!

@uqs我听到你了。 我还认为还有另一种方法可以解决该特定问题,即使用您想要的标志构建官方包。 你能分享一下你改变了什么标志的细节吗?

另一个我也在这里。 即,我需要使用 python 的 dns/未绑定端口,但我不需要构建所有底层依赖项。

+1

+1

无论是这个功能还是一些关于如何使用钩子来实现相同功能的文档都会很棒!

797会涵盖这个

797 被合并了,但是有很多陷阱使它不像看起来那么有用。 例如,llvm 和所有其他重要的东西仍在构建。 #822 可能需要解决这个问题。

此页面是否有帮助?
0 / 5 - 0 等级