2
2

More than 3 years have passed since last update.

rbenvでのRuby管理

Posted at

この投稿では、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をインストールをして、バージョン指定までしたけれど、うまくいかないとなった時に疑うポイントをまとめます。

  1. Command Line Toolsがインストールされていない
  2. Homebrewがインストールされていない
  3. rbenvのインストール時に、ruby-buildのインストールのみ失敗している
  4. rbenvなどが一部だけインストールできていない
  5. rbenvのインストールに失敗している
  6. rbenvを使用することをPCに伝えられていない
  7. rbenv localで意図しないバージョン指定している

主な原因は、上記の7点に集約されます。
⑤〜⑦に関しては、正常に実施できているかの説明をしていますので、記事を見直していただければと思います。

①Command Line Toolsがインストールされていない

ターミナルで、インストール作業のログを見返していただき、以下がないかを確認します。

xcode-select: error: invalid developer directory ‘/Library/Developer/CommandLineTools’

ログが見つかった場合は、以下のコマンドを実行すれば、CommandLineToolsをインストールできます。

xcode-select --install

インストール後は、rbenvのインストールの章から実施いただければOKです。

②Homebrewがインストールされていない

以下のコマンドを実行して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のインストール時に、ruby-buildのインストールのみ失敗している

rbenvのインストールの章では、詳しく説明していませんでしたが、rbenvをHomebrewでインストール際に、同時にruby-buildというライブラリがインストールされます。
セキュリティソフトの影響など、何かしらの理由で、インストールができていない場合、rbenvにrubyをインストールしようとすると失敗します。

確認は以下のコマンドでできます。

brew list | grep ruby-build

コマンドを入力して、何も表示されなければ、インストールできていないので、以下のコマンドでインストールしましょう。

brew install ruby-build

インストール後は、rbenvにRubyをインストールの章から実施いただければOKです。

④rbenvなどが一部だけインストールできていない

ネット環境やセキュリティソフトの影響で、一部ライブラリのみ正しくインストールできず、rbenvはインストールできているけど正常に動作しないというケースもあります。
その場合は、再インストールを試していただくと解決する場合があります。

各ライブラリ、ツールのアンインストール方法は以下です。

Command Line Tools

 sudo rm -r /Library/Developer/CommandLineTools

Homebrew

Homebrewはコマンドだけでは、削除しきれないものがあります。
アンインストール方法はこちらを参照してください。

rbenvとruby-build

rbenvとruby-buildは依存関係にあるので、同時に消すと良いため、そのためのコマンドを記載します。

brew uninstall rbenv ruby-build

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2