有没有办法在多个buldouts中重复使用部件?我有几个工具,我想添加到buildout中,不会在buildouts中改变。以下是一个示例案例:
执行此操作的一种方法是在每个配置中添加以下内容
[cmake]
recipe = zc.recipe.cmmi
url = http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
由于这不会在两个扩展中发生变化,因此如果可以设置类似于缓存鸡蛋的方式,则会节省更多磁盘空间。但是,我无法找到一个很好的方法来做到这一点。我不认为buildout的设计考虑到了这一点。
思路:
是否可以将cmake tarball重新分发为python egg?也许为不同的平台编译tarball并在bin中重新分配二进制文件?
另一个想法是有一个可以处理这种行为的食谱。也许是一个包装其他配方和检查的配方,以查看该部件是否全局安装。也许它看起来像这样:
[cmake]
recipe = my.recipe.reusuableparts
real-recipe = zc.recipe.cmmi
url = http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
答案 0 :(得分:1)
zc.recipe.cmmi
配方直接支持用例,但它没有记录(鸡蛋确实包含full documentation)。只需将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
以将其放入您的buildout下载缓存中:
[cmake]
recipe = zc.recipe.cmmi
url = http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
shared = True
由个人配方来支持这种共享行为。我不认为包装配方会很容易看到,因为buildout配方几乎可以做任何事情。