Bundler入門

Bundlerとは?

BundlerはGemとそのバージョンを厳密に辿ってインストールすることで、 Rubyプロジェクトのための一定の環境を提供します。

Bundlerは依存性地獄から抜け出すためのものであり、 必要とされるGemを開発環境、ステージング環境、製品環境のぞれぞれで提供されることを保証します。 プロジェクトで作業を始めるには、単にbundle installとするだけです。

はじめに

Bundlerを始めるのはとても簡単です! ターミナルウインドウを開いて、下記のコマンドを実行してください。

$ gem install bundler

プロジェクトのルートのGemfile内に、依存性の情報を指定して下さい。

source 'https://rubygems.org'
gem 'nokogiri'
gem 'rack', '~>1.1'
gem 'rspec', :require => 'spec'

指定された提供元(source)から、必要とするGemを全てインストールします。

$ bundle install
$ git add Gemfile Gemfile.lock

2つ目のコマンドはGemfileGemfile.lockをリポジトリに追加します。 これは、あなたが現在使用しているサードパーティ製のコードだけでなく開発環境も含め、 このアプリケーションの他の開発者が同じものを使用することを保証します。

アプリケーション内部で、bundleされた環境を読み込みます。

require 'rubygems'
require 'bundler/setup'

# require your gems as usual
require 'nokogiri'

bundleのGemに付属している実行ファイルは、次のように実行します。

$ bundle exec rspec spec/models

一部のケースでbundle exec抜きでの実行は、 実行ファイルがあなたのシステム(system)内にインストールされていて、 bundleと競合するGemが無ければ動作するかもしれません。

ただし、これは信頼出来ない処理であり、痛い目を見る原因になりえます。 例え動作しているように見えても、将来的にまたは別のマシンで動かない可能性があります。

もし、bundle内のGemへのショートカットが欲しいのであれば、下記のコマンドを実行します。

$ bundle install --binstubs
$ bin/rspec spec/models

binへインストールされた実行ファイルは、bundleへスコープされ、常にそれが動作します。

Rails4での--binstubsの取り扱いには注意が必要です。詳細については下記のリンク先を参照して下さい。

 Back to top

© 2010 - 2017 STUDIO KINGDOM