Gemfile没有使用指定的ruby版本

时间:2016-07-09 02:54:37

标签: ruby-on-rails ruby bundle rbenv gemfile

我正在制作一个项目,当我运行一个生成命令时,我收到以下错误:

fullpath: /Users/adamgoldberg/shopify-sinatra-app/theappearsystemcontrol6
Your Ruby version is 2.3.1, but your Gemfile specified 2.2.2
Bundler::RubyVersionMismatch: Your Ruby version is 2.3.1, but your Gemfile specified 2.2.2
  /Users/adamgoldberg/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/definition.rb:417:in `validate_ruby!'
  /Users/adamgoldberg/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler.rb:91:in `setup'
  /Users/adamgoldberg/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/setup.rb:19:in `<top (required)>'
  /Users/adamgoldberg/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
  /Users/adamgoldberg/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'bundler: failed to load command: rake (/Users/adamgoldberg/.rbenv/versions/2.3.1/bin/rake)

我必须为我的项目使用ruby版本2.3.1,所以我尝试更改我的Gemfile版本。 我的gemfile现在包含这个:

ruby "~> 2.3"

我尝试了各种命令,以便Gemfile识别出我想要使用不同的ruby版本。我试过了:

bundle update
bundle install
gem bundle install
rbenv rehash

即使我的Gemfile.lock说它使用的是2.3.1:

RUBY VERSION
    ruby 2.3.1p112

我甚至删除了该项目并重新开始。

请帮忙

更新:我删除了项目并重新启动。这是我从主目录中取出的确切步骤

ruby -v: #2.3.1
git clone https://github.com/kevinhughes27/shopify-sinatra-app.git
gem install shopify-sinatra-app
shopify-sinatra-app-generator new myshop

并出现与上述相同的错误:

Your Ruby version is 2.3.1, but your Gemfile specified 2.2.2

My Gemfile如下所示:

source 'https://rubygems.org'
gemspec
它实际上是空的......我甚至没有指定红宝石版本 然后我跑了

bundle install 
bundle update

仍出现相同的错误。 然后我在我的Gemspect中指定了ruby版本,它现在看起来像这样:

source 'https://rubygems.org'
ruby "2.3.1"
gemspec

但仍出现相同的错误

2 个答案:

答案 0 :(得分:0)

我认为你不能在Ruby版本中使用类似的版本说明符。我从未见过这样的例子。

如果你想要v2.3.1:

,也许可以这样试试
ruby "2.3.1"

答案 1 :(得分:0)

你在这里的尝试:

ruby "~> 2.3"

似乎是正确的方法,但你应该使用精确的Ruby版本:

ruby "2.3.1"

值得一提的是,如果您不想,您不一定需要在任何地方手动指定ruby版本。

更新了答案

我克隆了宝石并尝试安装它。我得到了同样的错误。我想出了2.2.2依赖的来源在哪里。这是宝石的源代码,对我来说是~/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/shopify-sinatra-app-0.3.0。在examples/Gemfile中有ruby '2.2.2'行。

我尝试删除此行,但安装activesupport时出现了其他错误。我认为使用这个gem生成应用程序的最简单的解决方案可能是安装ruby 2.2.2