Skip to content
hirotaka edited this page Jun 15, 2012 · 3 revisions
Bundlerは、[Cedar](Cedar)と[Bamboo](bamboo)スタックのみで使用することができます。Bundlerは、[Aspen stack](aspen)では動作しません。

BundlerはRails 3のデフォルトのgemマネージャですが、フレームワークには依存していないので、どのようなRubyプロジェクトでも使用することができます。BundlerはHeroku上のgemを管理するための推奨する方式です。

Bundlerを使用する

使用するには、Bundlerをインストールします。

:::term
$ gem install bundler

アプリケーションのルートにGemfileという名前のファイルを作成し、実行に必要なgemを指定します。

:::ruby
source :gemcutter
gem 'sinatra', '1.0'

これはアプリケーションの一部であるので、このファイルをgitリポジトリに追加する必要があります。また、.bundleディレクトリは.gitignoreファイルに 追加します。Gemfileを追加することで、他の開発者がアプリを実行するための環境を準備するのを容易にします。

:::term
$ bundle install

これで、Gemfileに指定されたすべてのgemとそれに依存するgemが共に、あなたのアプリケーションから利用できることを保証します。bundle installを実行することでGemfile.lockファイルが生成され、これはgitリポジトリに追加する必要があります。Gemfile.lockファイルは、Heorkuにデプロイされたgemのバージョンがローカルの開発マシンにインストールされたものと一致することを保証します。

あなたの`Gemfile`の`platforms`セクションに`mswin`や`mingw`などのWindowsの項目がある場合、`Gemfile.lock`ファイルは無視されます。

Herokuが自動的にアプリケーションの依存関係を解決してインストールするためにそのファイルを使用しています。やらなければいけないことはそれをpushするだけです。

:::term
-----> Heroku receiving push
-----> Sinatra app detected
-----> Gemfile detected, running Bundler version 1.0.0
       Unresolved dependencies detected; Installing...
       Using rack (1.2.1) 
       Using sinatra (1.0) 
       Using bundler (1.0.0) 
       Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

       Your bundle was installed to `.bundle/gems`
       Compiled slug size is 10.7MB
-----> Launching.... done

Gemsとグループを指定する

gem bundlerの推奨する使用方法は、アプリケーションが依存しているすべてのgemを確実にバンドルすることです。これはフレームワーク(Rails、シナトラなど)やデータベースコネクタも含みます。

Railsと他の依存関係をバンドルすると数メガバイト程スラグのサイズが増加します。増加したスラグのサイズは、大幅に簡素化された依存関係の管理および、あなたが望むRailsのすべてのバージョンを使用することができるという柔軟性のための価値あるトレードオフです。

config変数BUNDLE_WITHOUTを使用することで、bundlerでのインストールから特定のグループを除外することができます。

:::term
$ heroku config:add BUNDLE_WITHOUT="development:test"

当分の間、Cedarスタックは BUNDLE_WITHOUTをサポートしていないことに注意してください。

フレームワーク

Rails 3でBundlerを使用する

Rails 3は、バンドラー上に構築されています。これはセットアップが必要ないことを意味し、Gemfileに指定された全てのgemがあたたのアプリで利用する準備ができています。

Rails 2.3.xでBundlerを使用する

こちらに従ってください。環境設定ファイルからconfig.gem行を削除することを忘れないでください!また、アプリケーションに適切なデータベースgemを指定することを忘れないでください。

:::ruby
gem "PG", :group => :production
gem "sqlite3-ruby", :group => :development

アプリケーションにコードを追加した後、下記を実行します。

:::term
$ bundle install

そして、アプリケーションはBundlerで実行されます。

Sinatra(または他のRackアプリ)からBundlerを使用する

Gembundlerには、Sinatraと他のフレームワークでBundlerを使用する方法についても同様に、素晴らしいドキュメント一式があります。

参考文献

Clone this wiki locally