Macでrbenvを使用して最新の安定版のrubyを入れて使おうとしたけどなかなかバージョンが切り替わらなかった時があったのでメモ。
ちなみにHomebrewでrbenvとruby-buildをインストールしています。
状況
rbenvで最新の安定版のrubyをインストールしてglobal設定
rbenv global 2.2.3
一見設定できてそう
$ rbenv versions
system
* 2.2.3
でもruby -vで確認すると
$ ruby -v
ruby 2.0.0p645
ちゃんと設定できてません。
切り替えられるまでにやったこと
rbenv init
$ rbenv init
すると以下のようなメッセージが出現。
# Load rbenv automatically by adding
# the following to ~/.bash_profile:
eval "$(rbenv init -)"
試しに~/.bash_profileを見ると中身が空っぽだったので、
eval "$(rbenv init -)"
を追加してみる。変化なし。
もう一度initを実行しても同様です。
rbenv local --unset
ディレクトリ固有のRubyバージョンを指定しているわけではないものの、一応ローカルのバージョン設定を破棄してみる。
$ rbenv local --unset
$ rbenv rehash
当たり前ですが変化なし。
解決策
簡潔に言うとPATHの設定がちゃんとできてませんでした。
どこのrubyが呼ばれているかを確認してみます。
$ which ruby
/usr/bin/ruby
となっており、rbenvのrubyを使う時に設定されているべき
/Users/ユーザ名/.rbenv/shims/ruby
ではありませんでした。
実際、PATHを確認してみると、
$ echo $PATH
で出力されたものの中に/Users/ユーザ名/.rbenv/shimsはありませんでした。
.bash_profileの中身自体は先ほどinitをごにょごにょしていた時に設定しているのでそれを反映させます。
$ source ~/.bash_profile
これによりwhich ruby, echo $PATHの結果が期待通りになり、
$ ruby -v
ruby 2.2.3p173
ちゃんと設定できました。
参考記事