error codes & solutions

【Ruby】rbenv global してもバージョンが変らない

errors_eyecatch

 

こんにちは鹿せんべい(@bambi_engineer)です。

 

サイヤ人は死にかける度に強くなります。

エンジニアもエラーにぶつかる度に強くなります。

 

エラーが発生したら、ワクワクすっぞって言ってます。

 

嘘です。半ギレです。

今回はRubyのversionが変更できなかったので、調べてみました。

状況situation

 

Rubyのバージョンを2.5.1から2.3.1にバージョンダウンをしようとして発生しました。

$ rbenv global 2.3.1してrehashしてもバージョンが変わりませんでした。

 

$ rbenv install 2.3.1
$ rbenv global 2.3.1
$ rbenv rehash
$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision ~)

rbenv_error
そこはruby2.3.1ってなっているところではないのかな??

念の為に同じことをもう一度繰り返し、コマンドの入力ミスではないことを確かめました。

ちなみにrbenv local 2.3.1の時はいつもうまくいっていました。

 

原因couse

 

調べると rbenv versionを実行してみろ、とありました。

$ rbenv version
system
2.3.1
2.5.1(set by /Users/(user_name)/.ruby-version)

rbenverror画像

(user_name)のところはご自身の名前になっていると思います。
/Users/taro/.ruby-versionなど

この場合は私は2.5.1から2.3.1にversiondownしようとしていました。

ただこのset by /Users/(user_name)/.ruby-versionのファイルがあるので、バージョンが変らないようです。

解決方法solution

 

調べてみると、ファイル名を変更して参照できないようにしたり、削除して解決しているようでした。

心配性な私は削除しない方向で解決して見ました。
まずファイルの中身を確認します。

$ cat .ruby-version
2.5.1

2.5.1ってバッチリ記述されているようですね。

これを書き換えます。

$ vi .ruby-version

vi231

これは変更後の画面ですが、
シンプルに2.5.1のみ書かれていると思います。

これを変更するには

①半角英数字の a を入力
②2.3.1に書き直す
③escキー押す
④:wq

この4stepsで解決します。

半角英数字のaを入力

半角英数字の「a」のみを入力します。

見た目には何も変化がありませんが、ターミナルの画面の下に–INSERT–と出ていればファイルを修正することができます。

バージョンを書き直す

修正できるようになったので、自分のインストールしたいバージョンに書き換えます。
(私の場合2.3.1)

escキー押下

入力が終わったらescキーを押します(キーボードの左上)。

:wq

このファイルを上書きして終了するコマンドは「:wq」です。

何かエラーで保存して終了できない場合は、「!」をつけると強制的に上書きして保存します。
→「:wq!」を入力するということ。

確認

上書きして保存すると先ほどのターミナル画面に戻ってきたと思います。

ここでもう一度$ cat .ruby-versionを実行します。

$ cat .ruby-version
2.3.1

無事に上書きされました。

最後にもう一度rbenv rehashを行います。

$ rbenv global 2.3.1
$ rbenv rehash
$ ruby -v
2.3.1p112 (2016-04-26 revision 54768)

無事に2.3.1となりました。

また1つスーパーエンジニアに近づきました。

※初学者であるためベストな解決方法であるという確信はありません。
自己責任でよろしくお願いいたします。

まとめ

・rbenv globalができない時
→(set by /Users/(user_name)/.ruby-version)の記述を確かめる。

・そこが原因だった場合、書き直す