Ruby
Rails
RubyOnRails
Railsチュートリアル

bundle installしたらrubyのバージョン古いよってエラーになる

新しいPCにRailsの環境を作っている時のお話。

新しいPCなので当然Rubyは入ってないので、いろいろ設定した。

$ brew install rbenv
$ rbenv install 2.4.1
$ rbenv global 2.4.1
$ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin15]

で、自分のgithubレポジトリにある勉強中のRailsチュートリアル14章をcloneして、bundle installするとエラーになる。

$ bundle install
Fetching gem metadata from https://rubygems.org/.........
Fetching version metadata from https://rubygems.org/..
Fetching dependency metadata from https://rubygems.org/.
activesupport-5.0.0.1 requires ruby version >= 2.2.2, which is incompatible with the current version, ruby 2.0.0p645

エラーの内容は、rubyのバージョン2.2.2以上を使えよって言ってるんだけど2.4.1になってる。
なんか変なところ見に行ってるとかなのかなと思ったんだけど、違う。

$ which ruby
/Users/opiyo0804/.rbenv/shims/ruby

確かにrbenvを使ってinstallする前は/usr/....みたいなところを参照していてはまった記憶がある。
それをきっと見に行ってる?

ってことはbundle installする時だけはそっちを参照しちゃってる。
それを解消すれば良いのかなーと思って調べてると、あったあった!
解決方法はこれだー

$ rbenv rehash

これが何してるかだけど。
rubyをrbenv使ってインストールすると、そのバージョン配下に色々インストールされる。
これをパスが通ってる場所にコピーしてくれるのがrehashの役目?
なんか違う気がするが、ようは使えるようにしてくれる魔法の言葉なのだろう。
だから、新しいrubyをインストールした時はrehashすればOKってことにする。