Chef実践入門を実践してみる その4
knife-soloをローカルOSに入れる
今までテキストに沿って「gem install hogehoge」というように使用していましたが、
そもそもgemって何?となったので、調べました。
rubyのモジュール等をネット経由でインストールする仕組みで、
ruby本体に付属して入っているとのこと。なるほど。
ということで、ローカル側で以下のコマンドを実行してみました。
$ gem install knife-solo
またエラーになりました。。。
ERROR: While executing gem ... (Gem::DependencyError) Unable to resolve dependencies: knife-solo requires net-ssh (< 4.0, >= 2.7); chef requires net-ssh (< 5.0, >= 2.9); specinfra requires net-ssh (< 5.0, >= 2.7); net-scp requires net-ssh (>= 2.6.5); net-sftp requires net-ssh (>= 2.6.5); net-ssh-multi requires net-ssh (>= 2.6.5); net-ssh-gateway requires net-ssh (>= 4.0.0)
依存するnet-sshが入っていない・・・?
というわけでnet-sshをインストールしてみます。
「< 4.0, >= 2.7」との表記からバージョンを確認し、満たす中での最新バージョンを指定してインストール。
$ sudo gem install net-ssh --version "=3.2.0"
そして再挑戦。
ERROR: While executing gem ... (Gem::DependencyError) Unable to resolve dependencies: net-ssh-gateway requires net-ssh (>= 4.0.0)
・・・
最初にした時も出てた!
これを満たす条件なんて無いよう。。。
$ sudo gem install net-ssh-gateway
とりあえずnet-ssh-gateway指定でインストールしてみる
コマンドラインデペロッパーツールが無いから、というような記事も見つけたので、
インストール実施。
そして再チャレンジ
$ sudo gem install knife-solo Password: Building native extensions. This could take a while... Successfully installed libyajl2-1.2.0 Fetching: ffi-yajl-2.3.0.gem (100%) ERROR: Error installing knife-solo: ffi-yajl requires Ruby version >= 2.1.
今度はRubyのバージョンを上げろと言われる。。。。道のりは遠い。。
$ ruby -v ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]
確かに一致していない様子。
異なるバージョンを入れると切り替えが面倒という記事を読みつつ、
chef-soloのインストール指定バージョンを下げても求められることは変わらないためrubyのバージョンを上げることにする。
この記事を参考にしました。
qiita.com
HOMEBREWのインストール最中、
使用せずに以前入れていたpythonのPATHやらなんやらが邪魔をしてくるので、
すぐに使用しないため、pythonを削除
そしてついに上記記事を参考にし、ようやく2.2.3のrubyをインストールしました。
(どんどん本筋から離れていく。。。)
$ sudo gem install knife-solo
ついに成功・・・・・!
長かったです。。。
今はもう使用されていないchef-soloという機能ですが、
勉強のために入れてみようと思い、数時間。
大変でした。
そしてテキストに則り、berkshelfもインストール
$ sudo gem install berkshelf
スムーズに終わるって素晴らしい。
今日はここまで。