Set ruby version in Gemfile

2019-03-18 03:34发布

问题:

I can set ruby version in Gemfile as follows:

ruby '2.0.0'

But what if I want to have a particular version as 2.0.0-p353?

When I add it to Gemfile, I get:

Your Ruby version is 2.0.0, but your `Gemfile` specified 2.0.0-p353

Is it even possible to set a particular version?

回答1:

In Version 1.3 and earlier of Bundler you couldn’t specify the patchlevel:

The ruby directive explicitly leaves out the ability to specify a patch level. Ruby patches often include important bug and security fixes and are extremely compatible.

This changed in version 1.5, the docs now say:

In the ruby directive, :patchlevel is optional, as patchlevel releases are usually compatible and include important security fixes. The patchlevel option checks the RUBY_PATCHLEVEL constant, and if not specified then bundler will simply ignore it.

So you can specify the patchlevel like this:

ruby '2.0.0', :patchlevel => '353'


回答2:

If anyone is looking to be reminded of how to NOT specify a minor version, (yeah call me a noob) you could do:

ruby ">=2.2"

which would allow 'bundle install' call with ruby 2.2.4.