今更だけどrvmからrbenvに乗り換えるときの個人用メモ
ruby-2.0.0-devを使いたいのにrvmが対応してない。
というだけの理由で、rbenvに乗り換えることにしました。
rvmも便利だったのですが、cdコマンドを書き換えたりと
結構ブラックなこともやっていたので、いい機会かなと。
なんだか長くなっちゃったので省略されました。
rvmとrbenvの違い
- rvmはビルドからgemsetまで面倒を見てくれる
- でも結構多方面に影響するので怖い部分もある
- rbenv「ビルドツールなんてありません」
- rbenv「でも ruby-build っていうのがあるからそれ使ってもいいよ」
- rbenv「gemはbundleで各自管理してください」
まずはrvmをアンインストール
する前に注意事項。
端末はひとつだけ開いた状態で作業すること。
そして言うまでもなくgemはすべて消し飛びます。
※私はこの大前提を忘れて混乱しました。
シェル:
$ rvm seppuku
切腹って。
いざ消そうとするときに限ってそういう……。
まぁいいや、とにかくこれで ~/.rvm が存在していないことを確認し、
それから .zshrc なりに書き加えた各種rvm用の関数などを手作業で削除。
これでおしまいです。
アンインストールが終わったら端末を再起動すること。
※私はこの大前提を(ry
rbenvのインストール
続いてこちらがrbenvになります。
が、Ubuntu12.10にはパッケージがあったのでそちらを使用。
シェル:
$ sudo apt-get install rbenv
今のところこれで問題なしです。
それから(私はzshを使っているので) ~/.zshenv に下記を追加。
~/.zshenv:
eval "$(rbenv init - zsh)"
ruby-buildのインストール
ビルドツールとして ruby-build を使おうと思います。
こちらもUbuntuのパッケージにあったのですが、
rbenvのプラグインとして使ったほうが何かと都合が良さそうでした。*1
というわけでシェル:
$ mkdir -p ~/.rbenv/plugins/ $ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
これでいつでもパッケージリストを更新できるのでお手軽です。
さらに、環境変数で MAKEOPTS もしくは MAKE_OPTS を設定しておくと、
値を make コマンドの引数に渡してくれます。
例えば ~/.zshenv なんかに:
export MAKEOPTS="-j5"
とか書いておくと、CPUコアがたくさんある人は幸せになれます。
Ruby1.9.3-p327とRuby-2.0.0-devのインストール
前置きが長くなりましたがいよいよインストール。
シェル:
$ rbenv install -l # インストールできる処理系・バージョン一覧(ruby-buildに依存) $ rbenv install 1.9.3-p327 --verbose # rvm と同じ感覚でインストールできる $ rbenv install 2.0.0-dev --verbose $ rbenv global 1.9.3-p327 # 全体で使うruby処理系を指定 $ ruby -v ruby 1.9.3p327 (2012-11-10 revision 37606) [i686-linux]
"ruby -v" の出力が違うよーっていう人は端末を再起動したらいいと思います。
gemの設定
rvmと違ってrbenvの場合、新しいgemをインストールするたびに
$ rbenv rehash
しなければならないという、自由への代償的なものがあります。
さすがに面倒くさいので何とかしたい。
というわけでこんな便利ツールが。
gemをインストール/アンインストールするたびに rbenv rehash を実行してくれる
痒いところに手が届く感じのgemです。
ついでに bundle もインストールしましょう。
シェル:
$ gem i rbenv-rehash $ gem i bundle $ bundle
これで bundle が実行できれば大丈夫です。多分。
その他
$ rbenv shell VERSION
とかやった時は手動で
$ rbenv rehash
しなきゃいけない……っぽい?