rbenvをHomebrew版にスイッチした

みなさん rbenv 使ってますか。まぁ別に rvm でもなんでもいいので rbenv でないなんてぷぎゃーみたいなことを言うつもりはないんですが。

今日は Mac で rbenv 使うなら Homebrew でインストールするのもいんじゃね?というお話。

実はgit cloneでinstallするrbenvとruby-buildに困っていた

sstephenson/rbenv

今まで自分は長いこと rbenv の github repos の指示通りに install して使ってたんですが、いくつか不満もありました。

  1. OSX で zsh + screen の環境で使っていると rbenv の HEAD で意図した動きをしない(指定したはずのバージョンの Ruby が起動しない)ので、わざわざ v0.4.0 tag の commit に git reset –hard していた
  2. いちいち ~/.rbenv/plugins/ruby-build 以下で git pull することで ruby をバージョンアップする操作がダサい

どっちも我慢できなくはないんだけど、特に 1 は周りで騒いでる人を見かけないので自分の環境の何かの組み合わせの問題かなーと思いながらも、いったんこれにハマると気づくまで時間が掛かってしまってもったいないと思っていた。これが、homebrew 版にすると

  1. (2014-05-11時点で) 0.4.0 が stable として install されるのでハマる心配がない
  2. homebrew の手順で ruby-build を最新に保てるのでいちいち cd して git pull する必要がない

と、見事に問題が解決されてしまう。よい。

スイッチ方法は簡単

  1. brew install rbenv ruby-build
  2. ~/.rbenv/bin を削除
  3. rbenv rehash

で、おげ。

brew版も ruby の insall 先は指定がない限り ~/.rbenv です。ただし、 ~/.rbenv/bin/rbenv ではなく、brew で入れた /usr/local/bin/rbenv を起動する必要があるので ~/.rbenv/bin は削除しちゃいます。正しくインストールと設定が行われていれば、これだけで /usr/local/bin/rbenv が呼ばれます。

ただしこのままでは ~/.rbenv/shims 以下に入っている各種実行ファイルで呼び出す rbenv が切り替わっていないので動きません。そこで

rbenv rehash

こんでおしまいのはずです。

※ サラから brew install rbenv すると ~/.rbenv/ 以下には shims/ , versions/ しかないので、shims/, version ( defaultを指定する ), versions/ 以外は不要なのかもしれません。

[2014-05-14 追記] ~/.rbenv/bin/ を PATH に追加する設定は不要です。また ~/.rbenv/bin/ の存在を確認している場合は test 通らないので ~/.rbenv/ だけでチェックしてください。具体的には

if [ -e "$HOME/.rbenv" ]; then
    eval "$(rbenv init -)"
fi

こういうことですね。こうしておくと初期化が済んで最終的に ~/.rbenv/shims/ に PATH が通るという寸法です。

More