rbenvを使ってバージョン設定とbundleの食い違い
Ruby on Railsを使う際に気を付けなければならないのが,それぞれのバージョンです。
今まで普通にbundle install出来ていたのに,なぜかその時はエラーが出た。
Gem::InstallError: listen requires Ruby version >= 2.2.3, ~> 2.2. An error occurred while installing listen (3.1.5), and Bundler cannot continue. Make sure that `gem install listen -v '3.1.5'` succeeds before bundling.
しかしその時のrubyのバージョンはしっかり2.2.3。
$ ruby -v ruby 2.2.3p173
何がダメなのか色々googleってみたところ,どうもbundle内のrubyのバージョンが違うらしい。。
$ which ruby ~/.rbenv/shims/ruby $ which bundle /usr/bin/bundle
rbenvでバージョン管理をやっているので,rubyはrbenvから来てるがbundleはグローバルだった!
そんな感じで,bundleを使えるようにするために,アプリのディレクトリ上で
$ rbenv exec gem install bundler
をする。
するとまあビンゴです!
ちなみに,自分の希望のrubyのバージョンがglobalになっているにも関わらず,バージョンが切り替わってない時は
$ rbenv init
# Load rbenv automatically by adding # the following to ~/.bashrc: eval "$(rbenv init -)"
みたいな感じのが出たので,
$ eval "$(rbenv init -)"
と,従えば綺麗に切り替わりました。