本稿では、macOS に rbenv を Homebrew を用いてインストールし、Ruby を利用する手順について解説します。
前提
本稿では、ご利用の macOS に Homebrew が既にインストールされていることを前提に解説を進めます。 Homebrew の導入がまだの方は、別稿「Mac の開発を便利にするパッケージ管理ソフト Homebrew のインストール手順」などを参考に導入してください。
また、Homebrew は、デフォルトの /usr/local にインストールされることを前提にします。 Homebrew のインストールディレクトリを変更している方は、パスを随時読み変えてください。
インストール
rbenv を Homebrew でインストールする方法は、Homebrew で他のアプリケーションをインストールするのと何ら変わりありません。 次の例のように brew install コマンドで rbenv を指定します。
$ brew install rbenv
==> Downloading https://homebrew.bintray.com/bottles/rbenv-1.1.2.catalina.bottle.tar.gz
Already downloaded: /Users/user/Library/Caches/Homebrew/downloads/4aa5b17e756634bde0cc164c0052a544873cdee2c4b3d187079bdee4949fa72a--rbenv-1.1.2.catalina.bottle.tar.gz
==> Pouring rbenv-1.1.2.catalina.bottle.tar.gz
🍺 /usr/local/Cellar/rbenv/1.1.2: 36 files, 69KB
これで rbenv のインストールは完了です。 インストールされた rbenv は上の結果にある通り、/usr/local/Cellar/rbenv にインストールされました。 それと同時に、/usr/local/bin/rbenv というシンボリックリンクも作成されています。
$ ls -l /usr/local/bin/rbenv
lrwxr-xr-x 1 user admin 31 4 26 14:40 /usr/local/bin/rbenv -> ../Cellar/rbenv/1.1.2/bin/rbenv
次にログイン時やターミナル起動時に rbenv の初期化を行う rbenv init というコマンドが実行されるように設定します。 このコマンドは rbenv の初期化コマンドで、rbenv の実行ファイル(shims)を配置する shims ディレクトリや、複数の Ruby をインストールする versions ディレクトリなどを作成します。 このコマンドはコンピュータにログインした際に毎度自動的に実行された方が良いため、次のようなコマンドで ~/.bash_profile に実行コマンドを追記します。
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
これで .bash_profile の末尾にコマンドが追記されたはずです。 .bash_profile が実行されるようにログインし直すか、次のように .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 のバージョンをインストールできることが分かります。 ここでは 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/user/.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 をインストールする方法について解説しました。 皆様のお仕事のお役に立てれば幸いです。
更新履歴
- 2016年12月30日 : 初稿を執筆しました。
- 2020年04月26日 : macOS Catalina で動作を確認し、わかりづらい表現を修正しました。