DRYな備忘録

Don't Repeat Yourself.

【問題】RuntimeError: Couldn’t determine Berks version

問題

vagrant upすると以下のエラーが出る

% vagrant up
RuntimeError: Couldn't determine Berks version: #<Buff::ShellOut::Response:0x00000104987f10 @exitstatus=1, @stdout="", @stderr="/Users/otiai10/.rbenv/versions/2.1.3/lib/ruby/2.1.0/rubygems/dependency.rb:298:in `to_specs': Could not find 'berkshelf' (>= 0) among 61 total gem(s) (Gem::LoadError)
# 以下略

調査

chefdkをインストールしたのち、/opt/chefdk/bin /opt/chefdk/embedded/binへPATHを通せばいいのかな

しかし解決せず

しかし解決せず。なんでや

原因

% which berks
/Users/otiai10/.rbenv/shims/berks
%

berksへのコマンドパスが、rbenvのgemのまま。本当は

% ls /opt/chefdk/bin/berks
/opt/chefdk/bin/berks
%

こっちでなければならない。

解決

 # rbenv
-export PATH=/opt/chefdk/bin:/opt/chefdk/embedded/bin:$PATH
 if which rbenv > /dev/null; then eval "$(rbenv init - zsh)"; fi
+export PATH=/opt/chefdk/bin:/opt/chefdk/embedded/bin:$PATH

PATHに追加するときに、gemのロードのあとからchefdkを追加する必要があった

雑感

  • つらかった

Don't Repeat Yourself