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

  • 63
    いいね
  • 3
    コメント
この記事は最終更新日から1年以上が経過しています。

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