概要
久しぶりに自宅 Mac の rbenv で ruby のバージョンを切り替える必要があり、
$ rbenv global system
とコマンドを叩いてみたが、rbenv でインストールしたバージョンから変わらなかった。
困った。
環境
Macbook Air Mid 2012
macOS Sierra 10.12.4
結論
/Users/(user_name)/.ruby_version
というファイルのせいで、rbenv で選択している ruby のバージョンが更新されていなかった模様。
/Users/(user_name)/.ruby_version
の名前を、/Users/(user_name)/.ruby_version.bak
に変更して、様子見をすることにした。
試行錯誤
.bashrc を確認
ちゃんと設定されていた。
eval "$(rbenv init -)"
$PATH を確認
いろいろ入ってるけど、/usr/bin
より先に /Users/(user_name)/.rbenv/shims
が出力されているので、問題ないはず。
$ echo $PATH /Users/(user_name)/.pyenv/shims:/Users/(user_name)/.rbenv/shims:/Users/(user_name)/.nodebrew/current/bin:/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/eclipse/android/platform-tools:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/share/dotnet:/Library/Frameworks/Mono.framework/Versions/Current/Commands
ruby のパスを確認
あってた。
$ which ruby /Users/(user_name)/.rbenv/shims/ruby
rbenv を一度アンインストールして、再インストール
アンインストール。
$ brew uninstall rbenv
削除されたことを確認。
$ which rbenv
出力されないので削除成功。
再度、インストール。
$ brew install rbenv
インストールされたことを確認。
$ which rbenv /usr/local/bin/rbenv $ rbenv -v rbenv 1.1.1
インストール成功。
バージョンが切り替えられるようになったか確認したが、症状は改善せず。
新たに v.2.4.1 の ruby をインストール
rbenv install 2.4.1
成功。
rbenv でインストール済みのバージョンを削除
$ rbenv uninstall 2.3.0
削除した結果、
$ rbenv global 2.4.1
ってコマンド叩くと、rbenv から「2.3.0 なんてバージョン見つからない」って怒られるようになったw
ですよねー。
知ってた。
とあるファイルの存在に気づいた
$ rbenv versions system * 2.4.1 (set by /Users/(user_name)/.ruby_version)
.ruby_version
is なに?
調べたらこのファイルで ruby の current version を管理している模様。
そして、
/Users/(user_name)/.rbenv/version
というファイルの存在にも気づく。
$ rbenv global (ruby_version)
というコマンドを叩いたときに更新されていたのは、
/Users/(user_name)/.rbenv/version
だった。
更新されていないファイルが悪さしている?
リネームして読み込まれないようにしてみる。
$ mv /Users/(user_name)/.ruby_version /Users/(user_name)/.ruby_version.bak
試してみる。
$ rbenv versions system * 2.4.1 (set by /Users/(user_name)/.ruby_version) $ rbenv global system $ rbenv versions * system 2.4.1 (set by /Users/(user_name)/.ruby_version)
直った!!!
まとめ
強引に対処してしまったので、これでいいのか自信がないので、「こんなことのある」程度で読んでくださいまし。