rbenvを使ったRubyのバージョン切り替えでハマった件

Ruby
スポンサーリンク

Ruby on Railsの環境をローカルに構築する際、rbenvでrubyのバージョンが上手いこと切り替わらなかったので、切り替わるまでに試したことをメモ。
原因は不明ですが、今のところ上手く切り替わってるように見えます(モヤモヤ)。

rbenvによるバージョン切り替え手順

(1) homebrewでrbenvとruby-buuildをインストール【→問題なし】

$ brew install rbenv ruby-build
$ rbenv -v
rbenv 1.1.1

(2) rbenvでruby2.5.1をインストール【→問題なし】

$ echo ‘eval “$(rbenv init -)”‘ >> ~/.bash_profile
$ source ~/.bash_profile
$ rbenv install –list
$ rbenv install 2.5.1
$ rbenv versions
* system (set by /Users/ユーザ名/.rbenv/version)
2.5.1

(3) rbenv で 2.5.1 に切り替え【→問題あり】

$ rbenv global 2.5.1
$ ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin17]

あれれ?ということで、ここから原因調査。

原因調査

rbenvで再度バージョンを確認します。

$ rbenv versions
system
* 2.5.1 (set by /Users/user/.rbenv/version)

先頭に「*」があるので切り替わっているっぽい。
次にrubyコマンドの場所を確認します。

$ which ruby
/Users/user/.rbenv/shims/ruby

ホームディレクトリ配下の.rbenv/shims/rubyになっているので問題なさそう。はて???

念のため上記rubyコマンドの場所がパス(環境変数の$PATH)に入っているかを確認します。

$ echo $PATH
/Users/user/.rbenv/shims:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

ちゃんと最初に入ってますね。。。
念のため、~/.bash_profileの中身を確認してみても、以下のとおり正しく書かれているっぽい。

$ cat ~/.bash_profile
eval “$(rbenv init -)”

ダメ元でターミナルを開き直しても変わらず。。。。

こういう時はGoogleで!「rbenv 切り替わらない」で検索すると、皆さんパスの設定ミスや.ruby_versionファイルが残ってたなどが原因の模様。うーん、パスもちゃんと通っているように見えるし、.ruby_versionも無いんだけどな。。。
といくつか検索結果をポチポチみていたところ、あるサイトで次の1行を.bash_profileに書く必要があるとのこと。

export PATH=”$HOME/.rbenv/bin:$PATH”
Entry is not found - 音楽的でテクノロジー的なブログ
音楽的でテクノロジー的なブログ

う〜ん、.rbenv の下に bin なんてフォルダは無いし、2年前の情報なので違うかな〜。
とは思いつつダメ元で試してみたところ、バージョンが切り替わりました!(なぜ・・・?)

$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]

でも、やっぱり $HOME/.rbenv/bin なんてパスは存在していないので、無くても良いんじゃない?ということで一度 .bash_profileファイルを削除して、作り直してみました。

$ echo ‘eval “$(rbenv init -)”‘ >> ~/.bash_profile
$ source ~/.bash_profile
$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]

うーん、上手く切り替わってます。(やっぱり最後に追加した1行は無くても良いっぽいけど、なぜ・・・?)

念のため元のバージョンに戻したり、再度 ver2.5.1に切り替えてたりしても今度は問題なし。(むむむ・・・)

$ rbenv global system
$ ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin17]$ rbenv global 2.5.1
$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]

で、Ruby on Rails のインストール自体は下記コマンドですんなり行きました。

$ gem install rails

モヤッとしますが、ひとまず問題なさそうなので、このままで。

コメント