在Gemfile中设置ruby版本

Ale*_*lov 17 ruby ruby-on-rails bundler gemfile

我可以Gemfile按如下方式设置ruby版本:

ruby '2.0.0'
Run Code Online (Sandbox Code Playgroud)

但是,如果我想要一个特定的版本2.0.0-p353呢?

当我添加它时Gemfile,我得到:

Your Ruby version is 2.0.0, but your `Gemfile` specified 2.0.0-p353
Run Code Online (Sandbox Code Playgroud)

甚至可以设置特定版本?

mat*_*att 20

在Bundler的1.3版及更早版本中,您无法指定补丁级别:

ruby指令明确地省去了指定补丁级别的能力.Ruby补丁通常包含重要的错误和安全修复程序,并且非常兼容.

这在版本1.5中发生了变化,文档现在说:

ruby指令中,:patchlevel是可选的,因为补丁级别版本通常是兼容的并包含重要的安全修复程序.patchlevel选项检查RUBY_PATCHLEVEL常量,如果未指定,则bundler将忽略它.

所以你可以像这样指定补丁级别:

ruby '2.0.0', :patchlevel => '353'
Run Code Online (Sandbox Code Playgroud)

  • @AlexSmolov看起来你是对的.文档一定是错的.但是[Gemfile手册](http://bundler.io/v1.5/man/gemfile.5.html)中使用了一个字符串. (3认同)
  • 刚刚注意到你需要将`patchlevel`指定为字符串.否则,`bundler`会出错:`你的Gemfile中的Ruby补丁级别必须是一个字符串`. (2认同)

小智 12

如果有人想要提醒如何指定次要版本,(是的,我称之为菜鸟)你可以这样做:

ruby ">=2.2"
Run Code Online (Sandbox Code Playgroud)

这将允许与ruby 2.2.4进行"捆绑安装"调用.