最近、環境を作り直していたところエラーが出るようになりました。。
bash
$ gem install knife-solo
中略
/home/example/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/gems/ffi-yajl-1.0.1/ext/ffi_yajl/ext/encoder/encoder.c:28: undefined reference to `yajl_gen_config'
collect2: error: ld returned 1 exit status
Makefile:232: recipe for target 'encoder.so' failed
make: *** [encoder.so] Error 1
make failed, exit code 2
どうもffi-yajlというnative extensionのエラーのようです。
knife soloというより、chefの方のパッケージの依存関係が更新されたようです。
今まで、jsonのパースにはyajl-rubyというパッケージを使っていたところ、ffi-yajlというのに切り替わったようです。
11.14.0.alpha.4 から 11.14.0.rc.2 でかえられているようです。
取り急ぎ入れたい場合は、一つ前の11.12.8をバージョン指定で入れておけばいいのでしょうか、、、
knife-soloと一括で入れないとだめっぽいので、bundleコマンドでいれました。
bash
$ gem install bundler
$ bundle init
$ vi Gemfile
source 'https://rubygems.org'
gem 'chef', '11.12.8'
gem 'knife-solo'
$ bundle install
いい方法あったら教えてください、、
※windows以外、Cygwin以外でも出るかもしれませんが試してはいません。