Androidはワンツーパンチ 三歩進んで二歩下がる

プログラミングやどうでもいい話

Homebrew + rbenv で複数バージョンのrubyをインストールする

何回も同じことをググりそうなので、自分用のメモを書いておきます(●^o^●)
私の環境:Mac OS X 10.10.4 Yosemite

とあるruby のgemをインストールしようとしたところ

$ gem install sinatra

Fetching: rack-1.6.4.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

というメッセージが表示されました。

http://stackoverflow.com/questions/14607193/installing-gem-or-updating-rubygems-fails-with-permissions-error
によると大雑把な意訳ですが次のようなことが書いてあります。

このメッセージが出るということはAppleがプリインストールしているRubyなので、
システム権限を使ってこの環境をいじるとシステム全体に影響してしまう。
rbenv や RVM を使って自分のHOMEディレクトリ内のサンドボックスに別途Rubyの環境を
用意することをおすすめする。

なのでrbenvを導入することにしました。
rbenvとは複数rubyバージョンをマネージするツールです。簡単なコマンドで環境を切り換えることができます。

homebrewをインストール

便利なパッケージマネージャー「homebrew」を使ってインストールしたいのでまずhomebrewをインストールします。
Homebrew — The missing package manager for OS X

参考サイト様:Homebrewのインストールとrbenvのインストール Macqiita.com

※ このコマンドはやりたい人だけやってください。
sudo mv /opt/local ~/macports
# => macportが原因なので、上記コマンドで削除。
# => こちらは失敗する可能性もありますが、無視して大丈夫です。

macportsは削除して進んでみました。

$brew list

で今インストールされているものが見られます。

rvenvをインストール

次はHomebrewからrvenvをインストールします

参考サイト様:Mac OS X Lion に複数Ruby を入れる;homebrew、rbenv + ruby-build を使ってblog.livedoor.jp

$brew install rbenv

==> Downloading https://github.com/sstephenson/rbenv/archive/v0.4.0.tar.gz
######################################################################## 100.0%
==> Caveats
To use Homebrew's directories rather than ~/.rbenv add to your profile:
  export RBENV_ROOT=/usr/local/var/rbenv

To enable shims and autocompletion add to your profile:
  if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
==> Summary
🍺  /usr/local/Cellar/rbenv/0.4.0: 31 files, 152K, built in 4 seconds

インストールされました。

$ brew list

を打つとHomebrewでインストールしたものが一覧で表示されます

インストール時のメッセージの内容を反映します。次のコマンドで.bash_profile に設定を追加します。

echo 'export RBENV_ROOT=/usr/local/var/rbenv' >> ~/.bash_profile
echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi'>>~/.bash_profile

.bash_profileの変更を反映させます

$ source ~/.bash_profile

Rubyのインストール

次にRubyのインストールをします。

ruby-buildプラグインをインストール

インストール可能なRubyのバージョンを調べるコマンド↓を実行します。

$ rbenv install -l
rbenv: no such command `install'

というエラーメッセージが表示されることがあります。

実はinstall コマンドを使うには ruby-buildプラグインをインストールする必要があります。

$ brew install ruby-build

これで改めて$ rbenv install -l コマンドを実行するとインストール可能なバージョンのリストが表示されます。

ところで、rubyをrbenvでインストールする前は現在のrubyはsystemのrubyを使用する状態になっています↓
後で同じコマンドを試してみたいと思います。

$ which ruby
/usr/bin/ruby
$ rbenv versions
* system (set by /usr/local/var/rbenv/version)
ruby最新安定バージョンをインストール

rbenv install -lで表示されたリストの中から最新安定バージョン(2015/08/08時点では2.2.2)をインストールします。
それなりに時間がかかります。

$ rbenv install 2.2.2


インストールした後先ほどのコマンドを実行してみます。

$ which ruby
/usr/local/var/rbenv/shims/ruby
$ rbenv versions
* system (set by /usr/local/var/rbenv/version)
  2.2.2

となりsystemのRubyに加えユーザー環境に2.2.2が加わりました。

● 使用する Ruby のバージョンを指定します
$ rbenv global 2.2.2
$ rbenv versions
  system
* 2.2.2 (set by /usr/local/var/rbenv/version)

と切り替えできました。

$ ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14]

以上です。