如何为Gemfile指定最小Bundler版本?

Mar*_*tin 12 ruby bundler gemfile

当我的Gemfile正在使用:mri_20,以及以前版本的bundler不支持时,添加是个好主意

gem 'bundler', '~>1.3.5'
Run Code Online (Sandbox Code Playgroud)

到Gemfile?有没有更好的方法来强制执行最低捆绑器版本?

Jon*_*rns 18

这对用于管理Gemfile中的gem的Bundler没有任何影响.使用的bundler版本是您当前的ruby环境中可用的版本.

管理这个的最好方法是使用gemsets - 您可以使用已知的工作版本的bundler创建一个gemset,并在使用该项目时始终切换到该gemset.

要检查bundler版本,请运行:

$ bundle --version
Bundler version 1.3.5
Run Code Online (Sandbox Code Playgroud)

如果要在运行bundle install时强制执行bundler版本,请将其放在Gemfile的顶部:

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

  • @Martin看到更新的答案,我已经添加了一个方法 (3认同)