Bundlerは、必要なgemとそのバージョンを正確に追跡およびインストールすることで、Rubyプロジェクトに一貫性のある環境を提供します。
Bundlerは依存関係の地獄からの脱出であり、開発、ステージング、本番環境で必要なgemが存在することを保証します。プロジェクトの作業開始は、bundle install
と入力するだけで簡単です。
このガイドでは、Rubyがインストール済みであることを前提としています。Rubyがインストールされていない場合は、先にインストールしてから、ここに戻ってきてください!最新のRubyディストリビューションのほとんどには、Bundlerがデフォルトでプリインストールされています。
Bundlerの使い方は簡単です!プロジェクトのルートディレクトリにGemfileを作成して依存関係を指定します。
source 'https://rubygems.org'
gem 'nokogiri'
gem 'rack', '~> 2.2.4'
gem 'rspec'
指定されたソースから必要なgemをすべてインストールします。
$ bundle install
$ git add Gemfile Gemfile.lock
2番目のコマンドは、GemfileとGemfile.lockをリポジトリに追加します。これにより、アプリケーションの他の開発者やデプロイ環境でも、現在使用しているものと同じサードパーティコードを使用できるようになります。
アプリケーション内で、バンドルされた環境をロードします。
require 'bundler/setup'
# require your gems as usual
require 'nokogiri'
バンドルに含まれるgemに付属する実行可能ファイルを実行します。
$ bundle exec rspec spec/models
場合によっては、実行可能ファイルがシステムにインストールされていて、バンドルと競合するgemをプルインしない場合、bundle exec
なしで実行可能ファイルを実行できる場合があります。
ただし、これは信頼性が低く、大きな問題の原因となります。動作するように見える場合でも、将来または別のマシンでは動作しない可能性があります。
最後に、バンドル内のgemへのショートカットが必要な場合
$ bundle install --binstubs
$ bin/rspec spec/models
bin
にインストールされた実行可能ファイルはバンドルにスコープされ、常に機能します。
Bundlerは、新しいgemを作成するための簡単な方法でもあります。rails new
を使用して標準的なRailsプロジェクトを作成する場合と同様に、bundle gem
を使用して標準的なgemプロジェクトを作成できます。
README、.gemspec、Rakefile、ディレクトリ構造、gemの説明、テスト、公開に必要な基本的な定型コードをすべて備えた新しいgemを作成します。
$ bundle gem my_gem
Creating gem 'my_gem'...
create my_gem/Gemfile
create my_gem/.gitignore
create my_gem/lib/my_gem.rb
create my_gem/lib/my_gem/version.rb
create my_gem/my_gem.gemspec
create my_gem/Rakefile
create my_gem/README.md
create my_gem/bin/console
create my_gem/bin/setup
create my_gem/CODE_OF_CONDUCT.md
create my_gem/LICENSE.txt
create my_gem/.travis.yml
create my_gem/test/test_helper.rb
create my_gem/test/my_gem_test.rb
Initializing git repo in ./my_gem
Rails Sinatra RubyGems RubyMotion
Bundlerには多くのコントリビューターとユーザーがおり、彼らは頻繁に交流しています。質問がある場合は、IRCチャンネルまたはメーリングリストを試してみてください。プロジェクトへの貢献に興味がある場合は(プログラミングスキルは不要です)、貢献ガイドまたは開発ガイドを読んでください。Bundlerプロジェクトに参加する際には、行動規範を念頭に置き、すべての人に対して包括的で友好的な態度で接してください。スポンサーシップまたはセキュリティに関する質問がある場合は、コアチームに直接お問い合わせください。