2015-06-08 61 views
2

是否可以在一個食譜中引用多個版本的廚師食譜,如下所示,其中一個食譜(foo)中的食譜在另一個食譜(條)中引用食譜的多個版本,其中在該塊之前填充版本變量?我可以參考廚師菜譜的多個版本嗎?

begin 
    case version 
    when "" 
     include_recipe "cookbook-bar" 
    when "1.0.0" 
     include_recipe "[email protected]" 
    when "1.0.1" 
     include_recipe "[email protected]" 
    else 
     raise "Invalid Version: " + version 
    end 
rescue Chef::Exceptions::CookbookNotFound 
    raise "The Specified Cookbook Was Not Found: [email protected]" + version 
end 

metadata.rb文件我已經設置喜歡的依賴以下信息才能1.0.0版本,1.0.1,和cookbook-bar1.0.2有望拉動。

depends   "cookbook-bar", "<= 1.0.2" 

但是當我運行它,我仍然得到CookbookNotFound錯誤1.0.0cookbook-bar1.0.1版本。

回答

3

你不能,只有一個版本的食譜會被下拉到節點上,最高匹配依賴約束。

如果您在同一個運行中需要烹飪書的多個版本,則在某處出現問題。

+0

一個用例可能是一個「清理」配方,我希望在繼續之前根據最後一次運行的食譜版本進行清理。在這種情況下,唯一的選擇是讓最新版本的「清理」食譜知道如何清理所有以前的版本? –

+0

不,有很多方法,沒有一個真實的用例很難說哪一個更適合。主要共識是避免這種變化並從頭開始提供目標。 – Tensibai