2017-03-03 3 views
0

をmetadata.rbないレシピを追加することなく、include_recipeすることが可能です。 RHELボックスに活用できる既存の料理本があります。これはlinux-fooと呼ばれます。 include_recipe 'linux-foo'という既定のレシピに含め、料理ブックのメタデータにdepends 'linux-foo'を追加します。 は、それは私が、WindowsおよびRHELボックスの両方のためのソフトウェアをインストールする必要が料理を持っている

はしかし、メタデータに依存関係を追加することによって、それは私のカスタムWindowsレシピを壊しています。私は得ています

NoMethodError 
    ------------- 
    undefined method `[]' for nil:NilClass 

    Platform: 
    --------- 
    x64-mingw32 

テストキッチンでウィンドウレシピを収束させようとしているとき。犯人として.../linux-foo/attributes/default.rbを参照していますが、どの属性を指定していません。

まだ道はありますかinclude_recipe 'linux-foo'ですが、第三者の料理本のデフォルトの属性をどうにかして包んでmetadata.rbに固執していませんか?

私は依存関係を維持し、窓のレシピを破るか、別の料理にLinuxとWindowsのレシピを区切るのいずれかのように見えます。

答えて

0

は、残念ながらこれを行うための直接的な方法はありません。シェフは現時点でオプションの依存関係をサポートしていません。

最高の修正はレシピがない場合であっても、非Linuxマシンの負荷にあなたのlinux-foo料理を安全にすることです。エラー報告に記載されているファイルを見ると、完全なスタックトレースを見つけることができます。これは、修正が必要な行を示します(ただし複数あります)。

+0

ありがとうございます。私は、VM上でダンプされたstacktraceをチェックしました。それはかなりわかりませんでしたが、私はそれを再訪します。どのようにすれば、第三者の 'linux-foo'クックブックを私のウィンドウレシピに安全かつ互換性のあるものにすることができますか?私は何とか私の料理本の問題のあるデフォルトの属性を包んだり、保護したりできますか? – mywoes123

関連する問題