1

有没有办法在多个 buldouts 中重复使用零件?我有几个我想添加到构建中的工具,它们不会随着构建而改变。这是一个示例案例:

  • 配置全局构建选项,例如 download-cache=~/.buildout/downloads
  • Buildout A 需要 cmake 2.8.4
  • Buildout B 需要 cmake 2.8.4

一种方法是将以下内容放入它们的每个配置中

[cmake]
recipe = zc.recipe.cmmi
url = http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz

由于这不会在两个构建中发生变化,因此如果可以将其设置为类似于鸡蛋的缓存方式,它将节省更多的磁盘空间。但是,我想不出一个好的方法来做到这一点。我不认为扩建设计时考虑到了这一点。


想法:

  • 是否可以将 cmake tarball 重新分发为 python 蛋?也许为不同的平台编译 tarball 并在鸡蛋中重新分发二进制文件?

  • 另一个想法是有一个可以处理这种行为的配方。也许是一个包含其他配方的配方,并检查该部件是否已全局安装。也许它看起来像这样:

[cmake]
recipe = my.recipe.reusuableparts
real-recipe = zc.recipe.cmmi
url = http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
4

1 回答 1

1

zc.recipe.cmmi配方直接支持用例,但它的文档不足(鸡蛋确实包含完整的文档)。只需将shared选项设置为您选择的目录:

[cmake]
recipe = zc.recipe.cmmi
url = http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
shared = ~/shared-buildout-cmmi-builds/cmake/

或者简单地将其设置True为将其放入您的构建下载缓存中:

[cmake]
recipe = zc.recipe.cmmi
url = http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
shared = True

支持这种共享行为取决于个人食谱。我认为包装配方不会很容易看到,因为扩展配方几乎可以做任何事情。

于 2011-05-24T16:49:16.960 回答