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/