Bundlerとは?
RubyのライブラリであるRubyGemsを管理するためのツールで、開発プロジェクトごとにRubyGemsの依存関係を管理してくれます。これ自体もRubyGemsとして提供されています。
Bundlerがやってくれること
- Rails等のRuby開発に必要なライブラリをまとめてダウンロードや、インストールすることができる。
- 1つのマシンに、同じRubyGemsが複数バージョン使われていた場合は、プログラムを実行するRubyGemsを適切に切り替えてくれる。
Bundlerのインストール方法
「Bundler」自体がRubyGemsなので、下記のコマンドで最初にインストールする必要があります。
1 |
gem install bundler |
上記は、Windows7へrubyinstallerを使ったBundlerインストールのキャプチャになります。
Bundlerの動作やコマンド等
bundle init
Bundlerでgemを管理したいプロジェクトのディレクトリでこのコマンドを実行するとGemfileというファイルが生成されます。
bundle install
Gemfileにて記述したGemをインストールするコマンドです。その際に「Gemfile.lock」が作成されます。ここにはに記録されてbundlerを介して同じバージョンでの実行が保証されます。仮に利用しているgemのバージョンがアップして最新版が新たに配信されているとしてもbundlerはバージョンをロックするため自動的に環境に反映されることはありません。
なお、あるGemに依存関係のある別のGemも合わせてインストールされることになります。
オプション
-j4
jobs=4の略で、gemのインストールを並列におこなってくれるオプションになります。
bundle update
gemファイルのバージョンを指定の範囲内で最新版にアップデートします。(このコマンドを実行しない限りはGemfile.lockにてバージョン固定されます。)bundle updateした後はバージョンがどのように上がったのかは必ずチェックするようにしましょう。
Gemfileとは?
BundlerがRailsアプリで使うRubyGemsを管理するためのものでRailsのルートフォルダに存在しています。
Railsで使うgemのバージョンを指定することができます。(なお、バージョン指定を省略することも可能で省略した場合は最新版のgemがインストールされることになります。)
Gemfileの書き方
1 |
gem 'gem名','バージョン指定' |
更新方法
まずは、Gemfileを更新します。
次に、次のコマンドを実行するとGemfileの記述に従ったバージョンのgemがインストールされます。
1 |
bundle update gem名 |
また、gemの依存関係を示したGemfile.lockファイルも更新されます。(このファイルもGemfile同様にRailsのルート直下にあります。)
Gemfile.lockについて
別のPCやサーバーで同じバージョンのGemをインストールしたい場合に使うファイルです。ある環境で設定したGemfile.lockを別のPCにそのまま持っていくことによって同じバージョンのGemを共有して使うことができるようになります。
使用例
- Railsアプリを開発用PCと公開用サーバーで同じバージョンのGemを活用して動かす。
この記事へのコメントはありません。