Techioz Blog

Gemfile のバンドラーの最小バージョンを指定するにはどうすればよいですか?

概要

私の Gemfile が :mri_20 を使用していて、以前のバージョンのバンドラーがそれをサポートしていない場合、次のように追加するのは良い考えですか?

gem 'bundler', '~>1.3.5'

Gemfile に?バンドラーの最小バージョンを強制するより良い方法はありますか?

解決策

これは、Gemfile 内の gem を管理するために使用されるバンドラーには影響しません。使用されるバンドラーのバージョンは、現在の Ruby 環境で利用可能なバージョンです。

これを管理する最善の方法は gemset を使用することです。既知の動作バージョンの Bundler を使用して gemset を作成し、そのプロジェクトで作業するときに常にその gemset に切り替えることができます。

バンドラーのバージョンを確認するには、次を実行します。

$ bundle --version
Bundler version 1.3.5

バンドル インストールの実行時にバンドラーのバージョンを強制したい場合は、これを Gemfile の先頭に置きます。

# Gemfile
if Gem::Version.new(Bundler::VERSION) < Gem::Version.new('1.3.5')
  abort "Bundler version >= 1.3.5 is required"
end