結論
Chef Soloを使う場合、Chefは公式からではなくgemから入れる。
理由
Mac OS Xで、Chefとknife-soloをそれぞれ以下のコマンドでインストールするとする。
$ curl -L https://www.opscode.com/chef/install.sh | sudo bash
$ sudo gem install knife-solo
このとき、以下のようなことが生じる。
-
curl -L 〜
により、/opt/chef
にknife
コマンドがインストールされる -
sudo gem 〜
により、knife-solo
の依存であるchef
もインストールされる - システムの
knife
コマンドは、gemのChefではなく/opt/chef
を参照している -
/opt/chef
からは、gemであるknife solo
は見えないのでエラーとなる
ひとことでいうと、2つのknife
コマンドが共存している状態になる。
ここでknife solo prepare 〜
などとしても、knife
からはknife solo
が見えない。
このとき、タイトルのとおり以下のようなエラーが生じる。
FATAL: Cannot find sub command for: ‘solo'
公式から入れずとも、gem install knife-solo
さえすれば自動的に依存であるchef
もインストールされる。
なので、Chef Soloを使うときはgem install knife-solo
をすればよい。
※ 認識違いがあればコメントください!m(_ _)m