この投稿では、Rubyのバージョン管理ツールであるrbenvの使い方や注意点、困ったときにやることリストをまとめます。
MACでOSがCatalina以降の方を対象としています。WindonsPCの方や、OSのバージョンがMojava以前の方はご注意ください。
rbenvとは
Rubyの複数バージョンをインストールし、フォルダごとまでRubyのバージョンを切り替えられるツールです。
例えば、RubyではRuby on Railsを用いて、Webアプリを制作します。
そのとき、使いたいGem(ライブラリ)によっては、railsのバージョンを切り替えたい時があります。
アプリAは、Railsのバージョンを5.2.1で、アプリBはRailsのバージョンを6.0.3でなどですね。
そのとき、RubyとRailsはバージョンの互換性を考慮する必要があるので、
Rubyのバージョンも複数使えると便利ということですね。
ちなみに、Rubyを複数入れておくと、そのRubyに対し、Railsをそれぞれ紐づけることができます。
リストで紐付けを表現すると以下のような形ですね。
- Ruby 2.5.1
- Rails 5.2.1
- Ruby 2.6.5
- Rails 6.0.3
rbenvのインストール
メジャーである、Homebrewでのrbenvのインストール方法を紹介します。
ターミナルを開いて、以下のコマンドを実行するだけです。
brew install rbenv
次にrbenvがインストールできているかの確認をしていきます。
以下のrbenvのバージョンを確認するコマンドをターミナルで実行してください。
rbenv version
以下のような出力になれば、rbenvをインストールできています。
system (set by /Users/ユーザー名/.rbenv/version)
また、ログインするたび、PCを再起動するたびに、rbenvを使えるような設定をするために以下のコマンドを実行します。
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
rbenvにRubyをインストール
Homebrewにインストールされた、rbenvに特定のバージョンのRubyをインストールします。
こちらもターミナルから以下のコマンドを実施いただければ大丈夫です。
また、以降は2.6.5のRubyをインストールする例で示していきます。
rbenv install 2.6.5
インストールの確認は以下のコマンドで可能です。
rbenv versions
以下のように表示されれば正常にインストールできています。
* system (set by /Users/ユーザー名/.rbenv/version)
2.6.5
ちなみに、インストール可能な最新バージョンのRubyを知りたいなど思った時は、以下のコマンドで、インストール可能なRubyのバージョン一覧を出力できます。
rbenv install --list
また、特定のRubyのバージョンがインストール可能かもコマンドで確認できます。
rbenv install --list | grep 2.6.5
以下のように表示されていれば、インストール可能です。
2.6.5
rbenvで使用するRubyのバージョンを指定する
最後に、rbenvにインストールされているRubyのバージョンをPC全体、フォルダに指定します。
PC全体のRubyバージョン指定
以下のコマンドで、Rubyバージョンを指定できます。
rbenv global 2.6.5
また、Rubyバージョンが意図したものに指定できているかの確認は、以下のコマンドで可能です。
ruby -v
以下のように表示されれば、正常に設定できています。
ruby 2.6.5p114
フォルダごとのRubyバージョン指定
以下のコマンドで、Rubyバージョンを指定できます。
rbenv local 2.6.5
バージョンの確認は、PC全体に指定した時と同じです。
フォルダごとにRubyバージョンを指定した際は注意点があるので、必ずご確認ください。
フォルダごとのRubyバージョンを指定する際の注意点
Rubyのバージョン指定の優先度は、local > globalになります。
例えば、以下のコマンドを特定のフォルダで入力していたら、コマンドの順序に関係なく、
Rubyバージョンは2.5.1になります。
rbenv global 2.6.5
rbenv local 2.6.5
解決するためには以下コマンドを入力いただければ大丈夫です。
rbenv local --unset
Rubyバージョンを再確認し、Rubyのバージョンが変わっていれば、OKです。
rbenvでのよくあるRubyバージョンエラー
ここでは、rbenvをインストールをして、バージョン指定までしたけれど、うまくいかないとなった時に疑うポイントをまとめます。
- Command Line Toolsがインストールされていない
- Homebrewがインストールされていない
- rbenvのインストール時に、ruby-buildのインストールのみ失敗している
- rbenvなどが一部だけインストールできていない
- rbenvのインストールに失敗している
- rbenvを使用することをPCに伝えられていない
- rbenv localで意図しないバージョン指定している
主な原因は、上記の7点に集約されます。
⑤〜⑦に関しては、正常に実施できているかの説明をしていますので、記事を見直していただければと思います。
ターミナルで、インストール作業のログを見返していただき、以下がないかを確認します。
xcode-select: error: invalid developer directory ‘/Library/Developer/CommandLineTools’
ログが見つかった場合は、以下のコマンドを実行すれば、CommandLineToolsをインストールできます。
xcode-select --install
インストール後は、rbenvのインストールの章から実施いただければOKです。
以下のコマンドを実行してHomebrewがインストールできているかを確認できます。
brew -v
以下の表示になったら、インストールできていません。
zsh: command not found: brew
Homebrewインストールできていない方は、以下のコマンドでインストールできます。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
インストール後は、rbenvのインストールの章から実施いただければOKです。
rbenvのインストールの章では、詳しく説明していませんでしたが、rbenvをHomebrewでインストール際に、同時にruby-buildというライブラリがインストールされます。
セキュリティソフトの影響など、何かしらの理由で、インストールができていない場合、rbenvにrubyをインストールしようとすると失敗します。
確認は以下のコマンドでできます。
brew list | grep ruby-build
コマンドを入力して、何も表示されなければ、インストールできていないので、以下のコマンドでインストールしましょう。
brew install ruby-build
インストール後は、rbenvにRubyをインストールの章から実施いただければOKです。
ネット環境やセキュリティソフトの影響で、一部ライブラリのみ正しくインストールできず、rbenvはインストールできているけど正常に動作しないというケースもあります。
その場合は、再インストールを試していただくと解決する場合があります。
各ライブラリ、ツールのアンインストール方法は以下です。
Command Line Tools
sudo rm -r /Library/Developer/CommandLineTools
Homebrew
Homebrewはコマンドだけでは、削除しきれないものがあります。
アンインストール方法はこちらを参照してください。
rbenvとruby-build
rbenvとruby-buildは依存関係にあるので、同時に消すと良いため、そのためのコマンドを記載します。
brew uninstall rbenv ruby-build