ruby rbenv global バージョンが変わらない
Rubyのバージョン管理をする機能であるrbenvですが、ローカル環境のバージョン変更をしようとして
$ rbenv global 2.5.1
$ ruby -v
ってやったらバージョンが切り替わらない。悲しみ。
調べてみると
$ rbenv version
system
2.5.1
* 2.6.3(set by /Users/あなたのユーザー名/.ruby-version)
と出てきたときの .ruby-version というファイルを参照してバージョン変更しているようである。しかし、rbenvでバージョン管理する際に更新するファイルは
/Users/(user_name)/.rbenv/version
これなので、.ruby-versionは変更されず、だからいっこうにRubyのバージョンが変わらなかったのです。
このruby-versionというファイルを無くす、ファイル名を変えちゃう、ファイルの中身を書き換える。という手段でバージョン変更できるらしい。自分は中身書き換えました。
vim使うとバージョンを表す 2.6.3って書いてあるところを、2.5.1に修正して保存。それで ruby -v をしたら変更できてた。いちおうrbenv global と rbenv rehash もかけました。
これでバージョン変更はできたけど、中身書き換えただけなので次変える時も同様の手順が必要です。なので、ファイル名を書き換えるとかの方が良いかもしれない。
しかし、この腕力で解決する方法、スマートじゃない。大丈夫だろうか?調べて他の解決方法を追記しようと思います。
参考:
https://www.macneko.com/entry/issue-rbenv-not-working-global
https://shikasen-engineer.com/rbenv_global/