そこで、1つのマシン上で特定のディレクトリごとに使う言語のバージョンを切り替えられる仕組みが存在します。Rubyではその1つにrbenvがあります。以前からrvmもあったらしいですが、最近ではより軽量なrbenvが人気で乗り換える人も多いようです(rvmは使ったこと無いので詳しいことはググってください)。
で、開発にDebian7を使ってて、パッケージも用意されてるようなのでrbenvを入れました。ここでは利用するRubyのバージョンは1.9.3-p194としましょう。rubyをrbenv経由でインストールするにはruby-buildパッケージも必要です。
[user@host]% aptitude install rbenv ruby-build [user@host]% rbenv install 1.9.3-p194 [user@host]% rbenv rehash [user@host]% rbenv global 1.9.3-p194
~/.zshrc に以下の行を追記します。PATHに$HOME/.rbenv/binを追記するのはrbenvをソースからインストールした場合だけに必要なので、パッケージから入れた場合は下記だけで大丈夫です。
eval "$(rbenv init -)"
これで source ~/.zshrc で読み直すかログインしなおすと、先ほどインストールしたrubyがrbenvの制御下にあることがrubyのパスから確認できると思います。ちなみにgemも同様にrbenvの制御下にありますね。
[user@host]% which ruby /home/user/.rbenv/shims/ruby [user@host]% ruby --version ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux] [user@host]% which gem /home/tkasai/.rbenv/shims/gem
特定のディレクトリ以下でrubyのバージョンを切り替えるには、
[user@host]% rbenv local <version>
のようにします。するとそのディレクトリに.rbenv-versionというファイルが作られて、使用するバージョンが記録され、次回からrbenvが自動的にバージョンを切り替えてくれます。
さらにgemの管理のためBundlerも入れましょう。rbenvはrubyのバージョン切り替えだけを行うのでプロジェクトごとにgemも切り替えたい場合はBundlerが必要です。インストール後の rbenv rehash を忘れずに。
[user@host]% gem install bundler [user@host]% rbenv rehash
念のため、ログアウトしてログインし直します。bundleコマンドのパスを調べると、rbenv制御下に入っています。
[user@host]% which bundle /home/user/.rbenv/shims/bundle
あとは通常のbundleコマンドと同じ使い方でOKです。
※この記事について指摘・意見・提案・感想などありましたら下のコメント欄にどうそ。
0 件のコメント:
コメントを投稿