Homebrewで rbenv と Ruby をインストールする手順

投稿者 : OSCA

 本稿では、MacOS に rbenv と Ruby を Homebrew でインストールする手順について解説します。

前提

 本稿では、ご利用の MacOS に Homebrew が既にインストールされていることを前提に解説を進めます。 Homebrew の導入がまだの方は、「Mac の開発を便利にするパッケージ管理ソフト Homebrew のインストール手順」などを参考に導入してください。

 また、Homebrew は、デフォルトの /usr/local にインストールされていることを前提に解説します。 インストールディレクトリを変更している方は、随時読み変えてください。

インストール

 rbenv を Homebrew でインストールする方法は、Homebrew で他のアプリケーションをインストールするのと何ら変わりありません。 brew install コマンドで rbenv を指定します。

$ brew install rbenv
==> Installing rbenv
==> Downloading https://homebrew.bintray.com/bottles/rbenv-1.1.0.el_capitan.bottle.tar.gz
######################################################################## 100.0%
==> Pouring rbenv-1.1.0.el_capitan.bottle.tar.gz
==> Caveats
Rbenv stores data under ~/.rbenv by default. If you absolutely need to
store everything under Homebrew's prefix, include this in your profile:
export RBENV_ROOT=/usr/local/var/rbenv

To enable shims and autocompletion, run this and follow the instructions:
rbenv init
==> Summary
🍺 /usr/local/Cellar/rbenv/1.1.0: 36 files, 63.3K

 これで rbenv のインストールは完了しました。 インストールされた rbenv は上の結果にある通り、/usr/local/Cellar/rbenv にインストールされました。 それと同時に、/usr/local/bin/rbenv というシンボリックリンクも作成されています。

$ ls -l /usr/local/bin/rbenv
lrwxr-xr-x 1 user admin 31 12 30 12:48 /usr/local/bin/rbenv -> ../Cellar/rbenv/1.1.0/bin/rbenv

 さて、インストール中に重要なことを2つ説明されています。

  • rbenvのデータはデフォルトで ~/.rbenv に保存されます。 もしそれらのデータを Homebrew のインストールディレクトリ配下に保存するように変更したい場合は、profile で export RBENV_ROOT=/usr/local/var/rbenv などのように環境変数 RBENV_ROOT を設定してください。
  • shims と autocompletion を有効にするためには、rbenv init コマンドを実行してください。

 前者の RBENV_ROOT の設定は、本稿では特に変更するつもりがないので行いません。 もし必要であれば、~/.bash_profile に上記の export コマンドを追記してください。
 後者の rbenv init コマンドの実行は必須です。 簡単に言ってしまえば、rbenv の初期化コマンドで、rbenv の実行ファイル(shims)や複数の Ruby をインストールする versions ディレクトリなどを作成します。 このコマンドはコンピュータにログインした際に毎度自動的に実行された方が良いため、~/.bash_profile に次のようにコマンドで実行されるように追記します。

$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ cat ~/.bash_profile
eval "$(rbenv init -)"

 ログインし直すか、次のように .bash_profile を再度実行します。

$ source ~/.bash_profile

 すると ~/.rbenv ディレクトリが作成されて、中に shims と versions ディレクトリが作成されたことが確認できます。

$ ls -l ~/.rbenv/
total 0
drwxr-xr-x 2 user staff 68 12 30 13:07 shims
drwxr-xr-x 2 user staff 68 12 30 13:07 versions

Ruby をインストールする

 rbenv がインストールできたので、Ruby をインストールしてみましょう。 まずは現時点で Ruby がインストールされていないことを念のため確認します。 rbenv versions コマンドを実行すると、インストールされている Ruby のバージョンが分かります。 ここでは system というものだけが表示されます。

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

 rbenv を用いてインストールできる Ruby のバージョンを rbenv install -l コマンドで確認できます。

$ rbenv install -l
Available versions:
(略)
2.3.3
2.4.0-dev
2.4.0-preview1
2.4.0-preview2
2.4.0-preview3
2.4.0-rc1
2.4.0
(略)

 このように preview 版も含め、多くの Ruby のバージョンをインストールできることが分かります。 ここでは2016年12月現在で最新の 2.4.0 をインストールしてみます。 rbenv install コマンドにバージョンを指定します。

$ rbenv install 2.4.0
Downloading ruby-2.4.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.bz2
Installing ruby-2.4.0...
Installed ruby-2.4.0 to /Users/user/.rbenv/versions/2.4.0

 Ruby 2.4.0 のインストールが完了しました。 再び rbenv versions コマンドを実行してみると、今度は 2.4.0 が追加されたのが分かります。

$ rbenv versions
* system (set by /Users/OSCA/.rbenv/version)
  2.4.0

 最後に rbenv global コマンドで、デフォルトで利用する Ruby のバージョンを 2.4.0 に変更します。

$ rbenv global 2.4.0

 更に再び rbenv versions コマンドを実行してみると、米印(*)が今度は 2.4.0 の左側に点いて、デフォルトに 2.4.0 が選択されたことが確認できます。

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

 ruby -v コマンドで実際のバージョンを表示してみても、ruby 2.4.0 が実行されていることが確認できます。

$ ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin15]

トラブルシューティング

 rbenv install コマンドで Ruby をインストール中に、以下のようなエラーが出てしまった場合は、XCode のコマンドラインツールを再セットアップすると解決しました。

dyld: lazy symbol binding failed: Symbol not found: _clock_gettime
Referenced from: /private/var/folders/qt/0lwncv3s1cx8rrpzjb_hbsv00000gn/T/ruby-build.20161230132827.32808/ruby-2.4.0/./miniruby (which was built for Mac OS X 10.12)
Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: _clock_gettime
Referenced from: /private/var/folders/qt/0lwncv3s1cx8rrpzjb_hbsv00000gn/T/ruby-build.20161230132827.32808/ruby-2.4.0/./miniruby (which was built for Mac OS X 10.12)
Expected in: /usr/lib/libSystem.B.dylib

dyld: lazy symbol binding failed: Symbol not found: _clock_gettime
Referenced from: /private/var/folders/qt/0lwncv3s1cx8rrpzjb_hbsv00000gn/T/ruby-build.20161230132827.32808/ruby-2.4.0/./miniruby (which was built for Mac OS X 10.12)
Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: _clock_gettime
Referenced from: /private/var/folders/qt/0lwncv3s1cx8rrpzjb_hbsv00000gn/T/ruby-build.20161230132827.32808/ruby-2.4.0/./miniruby (which was built for Mac OS X 10.12)
Expected in: /usr/lib/libSystem.B.dylib

make: *** [.rbconfig.time] Trace/BPT trap: 5
make: *** Waiting for unfinished jobs....
make: *** [encdb.h] Trace/BPT trap: 5

 次のように XCode のコマンドラインツールを再セットアップします。

$ xcode-select --install
xcode-select: note: install requested for command line developer tools

おわりに

 本稿では Homebrew で MacOS に rbenv をインストールする方法について解説しました。 皆様のお仕事のお役に立てれば幸いです。

Ruby環境構築入門へ戻る

更新履歴

  • 2016年12月30日 : 初稿を執筆しました。

著者 : OSCA

OSCA

 初級WEBエンジニアです。最近は Android, iOS, WEBアプリの作成に力を入れています。 個人として何か一つでも世の中の多くの人に使ってもらえるアプリを作ろうと日々奮闘中です。