-
Notifications
You must be signed in to change notification settings - Fork 9
bundler
BundlerはRails 3のデフォルトのgemマネージャですが、フレームワークには依存していないので、どのようなRubyプロジェクトでも使用することができます。BundlerはHeroku上のgemを管理するための推奨する方式です。
使用するには、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のバージョンがローカルの開発マシンにインストールされたものと一致することを保証します。
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
gem bundlerの推奨する使用方法は、アプリケーションが依存しているすべてのgemを確実にバンドルすることです。これはフレームワーク(Rails、シナトラなど)やデータベースコネクタも含みます。
Railsと他の依存関係をバンドルすると数メガバイト程スラグのサイズが増加します。増加したスラグのサイズは、大幅に簡素化された依存関係の管理および、あなたが望むRailsのすべてのバージョンを使用することができるという柔軟性のための価値あるトレードオフです。
config変数BUNDLE_WITHOUT
を使用することで、bundlerでのインストールから特定のグループを除外することができます。
:::term
$ heroku config:add BUNDLE_WITHOUT="development:test"
当分の間、Cedarスタックは BUNDLE_WITHOUT
をサポートしていないことに注意してください。
Rails 3は、バンドラー上に構築されています。これはセットアップが必要ないことを意味し、Gemfile
に指定された全てのgemがあたたのアプリで利用する準備ができています。
こちらに従ってください。環境設定ファイルからconfig.gem
行を削除することを忘れないでください!また、アプリケーションに適切なデータベースgemを指定することを忘れないでください。
:::ruby
gem "PG", :group => :production
gem "sqlite3-ruby", :group => :development
アプリケーションにコードを追加した後、下記を実行します。
:::term
$ bundle install
そして、アプリケーションはBundlerで実行されます。
Gembundlerには、Sinatraと他のフレームワークでBundlerを使用する方法についても同様に、素晴らしいドキュメント一式があります。