はじめに
今までは仮想環境(Vagrant+VirtualBox)で学習をすすめていたのですが、ローカル環境を経験しておきたいということから、環境構築をはじめました。初学者は環境構築で挫折するということなので、経験しておくのも一興かと思って足を踏み入れたのでした。
何にハマったのか
「現場で使えるRuby on Rails 5 速習実践ガイド 5.2対応」を見ながら、ローカル環境構築をしています。Homebrew、rbenv、Rubyのインストール後、rbenv globalでバージョンが切り替わりませんでした。
ハマるまでの道のり
Rubyをインストールする
rbenvを使ってRubyをインストール。バージョンは2.5.1を指定します。
% rbenv install 2.5.1
インストールが終わったら、システム全体で使用するRubyのバージョンをrbenvに設定。
$ rbenv global 2.5.2
正しくインストールしたバージョンのRubyが利用できるか確認します。
% ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin20]
# ruby 2.5.1 を想定していました。
おや?希望していた結果と違いますね。
PATHの設定を見てみましょう。
% which ruby
/usr/bin/ruby
# /Users/[username]/.rbenv/shims/ruby を想定していました。
PATHの設定ができていないことが原因のようです。
PATHを確認してみます。
% echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
なるほど。そもそもPATHがありません。
/Users/[username]/.rbenv/shims/
があることが望ましいはずです。
これからはPATHを通す作業に入ります。
PATHを通す
% rbenv init
# Load rbenv automatically by appending
# the following to ~/.zshrc:
eval "$(rbenv init -)"
「~/.zshrc:
にeval "$(rbenv init -)"
を追記してください」とあるので従います。
% vi .zshrc
eval "$(rbenv init -)"
追記したら、反映させます。
% source ~/.zshrc
PATHが通せたか確認しましょう。
% which ruby
/Users/[username]/.rbenv/shims/ruby
% echo $PATH
/Users/[username]/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
期待どおりになっています。
きっとRubyのバージョンも期待通りになっていることでしょう。
% ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin20]
おや?
またもや希望していた結果ではありませんね。困りました。
rbenv globalで切り替わらない
現状の再確認をしてみます。
- Ruby 2.5.1 インストール済
- PATHは通せている
- rbenvでバージョン切り替えができない
特に気になっていたのはrbenv global
で切り替えができないことです。
% rbenv versions
* system (set by /Users/meg/.ruby-version)
2.5.1
どうしてだろう。
どうやら中身を書き換える方法があるらしい。
% cat .ruby-version
system
% vi .ruby-version
2.5.1
% cat .ruby-version
2.5.1
なんだか無理矢理感はありますが。どうなのでしょう。
rbenv rehashをする。
% rbenv global 2.5.1
% rbenv rehash
% ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin20]
できました!
参考記事
さいごに
Rubyの切り替えの記事は結構あるのですが、このケースの記事はあまりなかったので苦労しました。
今回の件でPATHとかシェルが学習不足だとわかったので、その分野も学習していかねばなりませんね。
もっと良い方法、また間違い等がありましたらコメントいただけると有り難いです。
最後までご覧いただき、ありがとうございました。