Posted at

rbenvでバージョンがうまく切り替わらなかった時にやったこと

More than 3 years have passed since last update.

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

ちゃんと設定できました。


参考記事

http://easyramble.com/rbenv-ruby-version-trouble.html