2011年11月1日火曜日

rvm と bundle の関係(初級)

rvm (Ruby Version Manager)は Ruby および RubyGems の切り替えを行うものですが、gem パッケージを管理する方法として bundler もあります。
いろんなブログを読んでいると「併用が最強」という風に見えるので、 bundler についても理解しておこうと思います。

Bundler は Gemfile を元に動作します。例えば、
gem 'rails', :version "> 3.1.0"
と Gemfile に書いてあれば、
$ bundle install  
とすることで、適切なバージョンの rails をインストールしてくれます。

また、システム上の gem に複数のバージョンの rails がインストールされていても
$ bundle exec rails generate ...
とすることで、Gemfile で指定されたバージョンを使ってコマンドを実行してくれます。

次の段階はきっと「バージョンアップにどうやって対応していくか」だと思うんですが、初歩の段階での環境構築についてはこのくらい分かっておけば何とかなりそうな気がしています。

あと、rvm との併用ってことで流れをまとめると
  1. Rails アプリケーションのルートディレクトリ($APP_HOMEとする)に移動する
  2. Gemfile を書いて、$APP_HOME に置く
  3. rvm --create use 1.9.2@yourappname とかで、新しい gemset の環境を作りつつ、その環境に移る
  4. bundle install --path vendor/bundle で、新しく作った gemset 環境下に gem をインストール
  5. .rvmrc を書いて、$APP_HOME に置く: "rvm use 1.9.2@yourappname" とだけ書いておけばOK(?)
こうすれば bundle exec のお世話にならなくても、その rvm 環境では単一のバージョンの gem しか存在しない「きれいな環境」なので、頭を悩まさなくても良さそうな予感です。

0 件のコメント:

コメントを投稿