c.f. bundle installするときはpathを指定しよう | FIRN.JP
プロジェクト用のディレクトリを作成して
[~] $ mkdir hogeproj
[~] $ cd hogeproj
Gemfileを編集
# Gemfile
source "http://rubygems.org"
gem "sinatra"
padrinoならgem "padrino"
に変える、Railsにしてバージョンを指定するならgem "rails", "3.0.1"
。
そして、bundlerを使って、hogeprojの閉じた環境にGemをインストール。
[~/hogeproj] $ bundle install --path vendor/bundle
この場合、hogeproj/vendor/bundle
にインストールされる。何でもいいが良く使う例。
# main.rb
require 'rubygems'
require 'sinatra'
get '/' do
'Hello world!'
end
適当な実行させるファイルを用意して、
[~/hogeproj] $ bundle exec ruby main.rb
でSinatraを走らせる。$ bundle exec
を付けるとhogeproj環境で実行される。
hogeprojの環境で動作させるために、
Gemパッケージを追加するときはGemfileに必要事項を記述して、$ bundle install
する。(2回目以降path指定は不要)
Bundlerを使う利点は、この例のようにhogeproj内の閉じた環境でGemを管理できるところにあります。もちろんGemを管理するという前提もありますが。システムやホームのRuby/Gem環境をクリーンなまま保つことができるので、システム的にも精神衛生的にも良い方法です。