Gemfile(or Gemfile.lock)の記述に従って依存gemをシステムにインストール.
$ bundle installシステムではなく任意のパスにgemをインストール.
$ bundle install --path vendor/bundle任意のパスにインストールした場合、ロードパス解決はbundlerによって行われる. コマンド実行する場合はbundle execを利用.
$ bundle exec rspecRubyコード上でロードパスを追加する場合.
require 'bundler/setup'
require 'nokogiri'任意のグループのみ対象とする場合はBundler.setupメソッドを利用する.
require 'bundler'
Bundler.setup(:default, :ci)
require 'nokogiri'グループまとめてrequireするBundler.requireメソッドもある.
require 'bundler'
Bundler.require(:default, Rails.env)--path指定でinstallした後は設定が保存され、以降のコマンドは該当パスに対して実行される. システムへのインストールに戻す--systemオプションもある.
$ bundle install --systemなお保存された設定はbundle configコマンドで確認することができ、実体は.bundle/configに書き出される.
$ bundle config
Settings are listed in order of priority. The top value will be used.
path
Set for your local app (/path/to/project/.bundle/config): "vendor/bundle"
disable_shared_gems
Set for your local app (/path/to/project/.bundle/config): "1"
bin
Set for your local app (/path/to/project/.bundle/config): "./bin"
$ cat .bundle/config
---
BUNDLE_PATH: vendor/bundle
BUNDLE_DISABLE_SHARED_GEMS: '1'
BUNDLE_BIN: ./binなお.bundleフォルダはバージョン管理には含めずGemfileとGemfile.lockはバージョン管理する.
installしたgemはGemfile.lockでバージョンが固定される. それを無視して最新のgemを取得するにはupdateを利用する.
$ bundle update # update all gems
$ bundle update nokogiri # nokogiri gem onlyGemfile.lockの内容に従って、システムや他アプリケーションとは隔離して依存gemをインストールする.
$ bundle install --deployment$ bundle packageしておくとその環境でインストールした.gemをvender/cacheにぶち込んでくれて、--deployment時はcacheからインストールを行う.
$ bundle package
$ git add vendor/cacheCapistranoを利用しているのであればdeploy.rbに以下を記述して$ cap deployでOK.
require 'bundler/capistrano'autorequiringではGemfileに記述したgem名がrequireされる. gem名がrack-cacheだけど実際にrequireするのがrake/cacheな場合は:requireオプションを利用.
gem 'rack-cache', :require => 'rack/cache'また複数requireしなければならないケースではArrayで指定すればよい.
gem "redis", :require => ["redis/connection/hiredis", "redis"]autorequiringされなくするにはfalseを指定すればよい.
gem "webmock", :require => false