2011-05-24 43 views
1

是否有重複使用多個buldouts中的零件的方法?我有幾個工具可以添加到構建中,而不需要在構建時進行更改。下面是一個例子的情況下:重複使用多個疊加中的相同零件

  • 配置的全局附加件的選項,使得下載緩存=〜/ .buildout /下載
  • 附加件A需要cmake的2.8.4
  • 附加件B需要的cmake 2.8.4
  • 要做到這一點

一種方法是把處於它們的配置

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

以下由於這並未」如果可以設置類似於雞蛋緩存的方式,則可以節省更多的磁盤空間。但是,我找不到一個好辦法來做到這一點。我不認爲buildout的設計是考慮到這一點。


思路:

  • 是否有可能重新分配cmake的壓縮包的蟒蛇蛋?也許編譯用於不同平臺的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 

回答

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把它放在你的擴建下載緩存:

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

這取決於個人的食譜來支持這樣的共享行爲。我不認爲包裝食譜會很容易看到,因爲構建食譜幾乎可以做任何事情。

+0

這不完全是我問的問題。我知道如何做全局配置。我想要做的就是使用全局配置重用cmake內置的位置,這樣我只有一個cmake 2.8.4的二進制文件,例如〜/ .buildout/parts/cmake-2.8.4.tar .gz/ – Doran 2011-05-24 16:56:45

+0

啊,對!更新了我的答案。 – 2011-05-24 17:01:17

+0

這適用於我需要做的事情。並非我所有的共享部分都是通過cmmi安裝的,但我認爲我可以通過將這些部分製作成cmmi包來輕鬆解決這個問題。 – Doran 2011-05-24 17:41:29