[Berkshelf] Cookbookで依存関係を記述する方法

例えば何かのソフトウェアをコンパイルインストールするレシピを書きたいとき、gccやmakeのインストールが必要になるのでレシピにこのように書くわけですが、
%w{gcc make}.each do |pkg|
  package pkg do
    action :install
  end
end
gcc,makeのインストールのような定番処理はopscodeのcookbook "build-essential"がやってくれるのでそちらに任せてしまいましょう。

やり方

  1. mycookbook/metadata.rb に依存関係を記述する
  2. レシピ内でinclude_recipe して呼び出す
mycookbook/metadata.rb に依存関係を記述する
name 'mycookbook'
version '0.0.1'
depends 'build-essential'
こうすれば、berks vendorしたときにBerkshelfが依存関係を自解決してbuild-essentialクックブックを取得してくれます。
レシピ内でinclude_recipe して呼び出す
recipes/default.rb で
include_recipe "build-essential::default"
と書きます。
これで、gccやmakeのインストールを自分で書かなくてもよくなります。

Happy Berkshelf!
カテゴリ: