MacでRubyをrbenvでインストールする方法 初心者向け徹底ガイド

はじめに

RubyはWebアプリケーションやスクリプト開発など、幅広い領域で利用されているプログラミング言語です。
とくに、Ruby on Railsの存在によってWebアプリケーション開発の選択肢としても認知度が高まっています。
Macには最初からRubyがインストールされていることがありますが、バージョンが古かったり、複数のプロジェクトで違うRubyバージョンを使う必要が生じたりすることが多いです。

こうした状況で役に立つのが、rbenvと呼ばれるバージョン管理ツールです。
ただし、初心者が始める際には「そもそもrbenvって何?」という疑問から始まり、さらに「どうやってインストールするの?」と不安になる方が少なくありません。

そこで本記事では、Mac環境でRubyをインストールし、rbenvでバージョンを管理する方法を初心者向けに解説します。
技術用語をできるだけ噛み砕きながら、インストール手順、設定ファイル、バージョン切り替えの方法などを順を追って紹介します。

最終的には、複数のRubyバージョンをスムーズに使い分けられるようになり、実務や学習での混乱を減らせるでしょう。

この記事を読むとわかること

  • rbenvの基本概念と、なぜバージョン管理が必要とされるのか
  • Mac環境でのrbenvインストール手順
  • Rubyのインストールとバージョン切り替えのやり方
  • インストール後に発生しやすいエラーや対策
  • 実務でRubyを使う際に役立つバージョン管理のポイント

rbenvとは何か

rbenvとは、Rubyのバージョンを簡単に切り替えられる便利なツールです。
複数のプロジェクトを同時に進めていると、片方のプロジェクトでは特定のRubyバージョンが必要、もう一方では別のバージョンが必要ということがあります。
そんなときrbenvを使うと、同じMac上で複数のRubyバージョンを並行して扱うことが可能になります。

システムRubyとの違い

Macには最初からRubyがインストールされているケースが多いです。
しかし、そのRubyはバージョンが固定されていて、変更やアップデートが難しいことがあります。
このような「システムRuby」はOS自身の動作にも利用される場合があるため、下手にアップデートするとmacOSの一部機能に影響が出るかもしれません。

一方、rbenvを利用すれば、システムが提供しているRubyを触らずに、自分専用のRubyバージョンをインストールできます。
これにより、OS標準のRubyを保ったまま、新しいバージョンや複数のバージョンを自由に試せる利点があります。

実務でのバージョン管理の重要性

実務でも複数バージョンのRubyを切り替える場面は多くあります。
たとえば、あるプロジェクトではバージョン3系のRubyを採用しているのに、別のプロジェクトでは2系のRubyを使っているといったケースが典型的です。

チーム開発でも、何らかの理由で特定のバージョンを固定しなければならないことがあります。
Rubyのメジャーバージョンが上がるときには、互換性の問題で古いバージョンを維持しなければいけない場合もあるからです。
こうしたときにrbenvを使ってバージョンを管理すると、開発メンバー全員が同じRubyバージョンを簡単に再現できます。

バージョン管理ツールを使わずに複数のRubyを手動でインストールすると、システムが混乱する可能性があります。
rbenvや同様のツールを使って適切に管理することで、環境トラブルを格段に減らせます。

rbenvを導入する準備

rbenvをインストールする前に、Macの環境が整っているかを確かめましょう。
多くの場合、Homebrewというパッケージ管理ツールがインストールされていると便利です。
Homebrewを使うことで、rbenvや関連ツールを簡単に入手できるからです。

Homebrewの確認とインストール

Homebrewがすでにインストールされているかどうかは、以下のコマンドを実行するとわかります。

brew --version

このコマンドを打ってバージョン情報が表示されれば、すでにHomebrewが入っているということになります。
もしエラーや何も表示されない場合は、Homebrewが入っていない可能性があります。
この場合はHomebrewの公式サイトを参照し、指示どおりにインストールしてから先に進むことをおすすめします。

ディレクトリ構成をイメージしよう

rbenvは、通常ユーザのホームディレクトリの中で複数のRubyバージョンを管理します。
Ruby本体のインストール先、そしてグローバルに利用するバージョン、プロジェクト別のバージョン指定など、色々な設定が絡んできます。

ざっくりとしたイメージとしては、

  • ~/.rbenv/versions/ 以下に各バージョンのRubyが格納される
  • ~/.rbenv/shims/ という場所を通じて、使用するRubyバージョンを切り替える
  • .ruby-version というファイルをプロジェクトルートに置けば、そのディレクトリでは指定バージョンが使われる

という仕組みになっています。
こうしたディレクトリ構成を頭に入れておくと、後々のトラブルシューティングで役立ちます。

Macでのrbenvインストール手順

ここからは、実際にrbenvをインストールする手順を見ていきましょう。
大まかな流れは次のとおりです。

  1. Homebrewを利用してrbenvをインストールする
  2. PATHの設定ファイルを編集して、rbenvコマンドが使えるようにする
  3. shellを再起動、または設定ファイルを再読み込みして適用する

インストールコマンドの実行

Homebrewを使ってrbenvをインストールする場合は、以下のコマンドを実行します。

brew install rbenv

このコマンドを実行すると、Homebrewがrbenvをダウンロードし、Macにインストールします。
環境によっては数分かかる場合もありますが、基本的にはこれだけでrbenv本体の準備は完了です。

パス設定とshellへの反映

rbenvをインストールしたら、shellの設定ファイルにrbenvの初期化スクリプトを追加する必要があります。
たとえば、MacのデフォルトshellがZshの場合は、ホームディレクトリにある .zshrc に以下の行を追記します。

eval "$(rbenv init -)"

Bashを使っているなら .bash_profile.bashrc に同様の設定を入れます。
これを追加した後、下記のように実行して設定を反映しましょう。

source ~/.zshrc

これで、新しいshellを開くたびに自動的にrbenvが利用できるようになります。

ruby-buildの導入

Rubyのインストールを容易にするために、ruby-buildというプラグインも一緒に入れておくと便利です。
ruby-buildを入れておくと、指定したバージョンのRubyを簡単にインストールできます。
Homebrewを使うなら、以下のコマンドで追加できます。

brew install ruby-build

このコマンドが成功すれば、準備はほぼ完了です。

Rubyのバージョン管理方法

rbenvを導入した後は、実際にRubyのインストールやバージョン切り替えを試してみましょう。

1. インストールできるRubyバージョンの一覧を確認する

rbenv install -l

このコマンドを打つと、インストール可能なRubyの一覧が表示されます。

2. 必要なバージョンをインストールする

例として、あるバージョンをインストールするときは次のようにします。

rbenv install <インストールしたいRubyバージョン>

3. グローバル (システム全体) に使うバージョンを設定

rbenv global <バージョン>

この設定をしておけば、プロジェクトで特定の指定がない場合にこのバージョンが使われます。

4. インストールしたRubyが使われているか確認

ruby -v

ここで表示されるバージョンが、上記で設定したものになっていれば成功です。

目的別にバージョンを切り替える

複数のプロジェクトを抱えているときは、それぞれのプロジェクトで使いたいRubyバージョンが異なることがあります。
そんなときは、そのプロジェクトのルートディレクトリに \.ruby-version というファイルを置き、中に指定バージョンを記述しておくと便利です。

たとえば、以下のように .ruby-version ファイルを作ります。

<プロジェクトで使いたいRubyバージョン>

この状態でプロジェクトのフォルダに移動すると、自動的に指定したバージョンが有効になります。

システム全体とプロジェクト単位で使い分け

rbenvには、大きく分けて2種類のバージョン指定方法があります。

  • global: システム全体でデフォルトに使うRubyバージョン
  • local: 今いるディレクトリまたはプロジェクトで使うRubyバージョン

local指定をするなら rbenv local <バージョン> コマンドでもOKです。
どちらが優先されるかは、基本的にlocalの設定がglobalよりも優先されます。

よくあるエラーと対策

rbenvを使い始めてすぐに見舞われやすいエラーや疑問をいくつか挙げておきましょう。

バージョンが反映されない原因

rbenvでバージョンを指定したはずなのに、ruby -v で確認すると全然違うバージョンが出てくる場合があります。
多くの場合、原因はPATHの設定です。
.zshrc.bashrceval "$(rbenv init -)" を書いていないか、書いたとしても反映(sourceコマンドなど)が行われていないかのどちらかです。

また、何らかの事情でパスの記述が複数の設定ファイルに重複しているケースもあります。
念のために .zshenv, .zshrc, .zprofile の中身をチェックし、混在していないかを確かめると良いでしょう。

PATHが競合する場合

同じMacに複数のバージョン管理ツール(たとえばrvmやasdfなど)がインストールされていると、PATHが競合して思わぬ挙動になるケースがあります。
こうした場合は、使うバージョン管理ツールを一つに絞るか、設定ファイルで優先順位をコントロールする必要があります。

rbenv単独で使うのであれば、他のツールの設定をコメントアウトするか、不要ならアンインストールしておく方が安全かもしれません。

複数のRubyバージョン管理ツールを併用すると、思わぬ不具合に遭遇する可能性があります。
トラブルシュートが難しくなるため、どれか1つのツールに絞ったほうが安定しやすいです。

実務で活かすためのヒント

せっかくrbenvで複数バージョンを使い分けられるようになっても、具体的な使い道がイメージできないと宝の持ち腐れになりがちです。
ここでは実際の開発現場でよく見られる使い方を紹介します。

GemやBundlerとの連携

Rubyを使った開発では、Gemというパッケージを導入してライブラリを活用する場面が多いでしょう。
そして、Bundlerを使ってGemのバージョンや依存関係を管理することがあります。

例えば、RailsやSinatraなどのフレームワークのバージョンも、Ruby本体のバージョンと同じようにプロジェクトごとに異なります。
rbenvによってRubyのバージョンを切り替えたうえで、Bundlerで必要なGemをインストールしプロジェクトを起動する、という流れが典型的です。

チーム開発におけるバージョン統一

複数人で開発していると、メンバーごとに使っているRubyバージョンがバラバラだと動作が異なることがあります。
予期せぬエラーを回避するためには、チーム全員が同じRubyバージョンを使うのが理想です。

そこで、リポジトリのルートに .ruby-version ファイルを置き、そこにチームが使うRubyバージョンを明確に書いておくのが一般的です。
新しく参加したメンバーも、リポジトリをクローンしたら自動的に同じバージョンのRubyを利用できるようになるので、セットアップの手間やトラブルを減らせます。

CIツールや自動テストとの合わせ技

継続的インテグレーション(CI)で自動テストを回すときにも、rbenvでバージョン管理しているRubyを使うケースがあります。
たとえばGitHub ActionsやCircleCIなどのプラットフォームでは、ジョブを実行する環境を設定するときに、rbenvやそれに類する仕組みで特定のRubyバージョンをインストールして実行できるようにします。

これにより、ローカル環境(自分のMac)とCI環境の差をなくし、どの環境でも同じRubyバージョンでテストができるようになります。
「ローカルでは動くのに、CIでこける」というよくある問題を回避するうえでも、バージョン管理は欠かせないわけです。

まとめ

ここまで、Mac上でRubyをrbenvを使ってインストールし、バージョン管理を行う方法を説明してきました。
初心者にとっては設定ファイルの編集やPATHの調整など、難しく感じるところもあるかもしれませんが、慣れてしまえば流れはシンプルです。

  • Mac標準のRubyでは自由にバージョンを変更できない
  • rbenvを使えば複数バージョンのインストールや切り替えが簡単
  • 設定ファイル(.zshrc や .bashrc)にrbenvの初期化を追加するのがポイント
  • プロジェクトごとに .ruby-version を置いて、チーム全体で統一しやすい

実務でも学習でも、Rubyのバージョンに起因するトラブルは思いのほか多いものです。
rbenvを導入し、プロジェクトの要件に合ったRubyのバージョンを適切に管理することで、余計な作業を減らし本来の開発に集中しやすくなるのではないでしょうか。

これを機に、ぜひrbenvを活用してRubyを扱ってみてください。
いずれは複数のプロジェクトで別バージョンを並行して利用する機会も出てくるはずです。
そんなときに、この記事の手順やポイントを思い出してみていただけると幸いです。

Rubyをマスターしよう

この記事で学んだRubyの知識をさらに伸ばしませんか?
Udemyには、現場ですぐ使えるスキルを身につけられる実践的な講座が揃っています。