您的 Ruby 版本是 2.0.0,但您的 Gemfile 指定了 2.1.0

Posted

技术标签:

【中文标题】您的 Ruby 版本是 2.0.0,但您的 Gemfile 指定了 2.1.0【英文标题】:Your Ruby version is 2.0.0, but your Gemfile specified 2.1.0 【发布时间】:2014-05-27 04:46:41 【问题描述】:

当我尝试捆绑安装时,我收到以下消息:

Your Ruby version is 2.0.0, but your Gemfile specified 2.1.0

在我的 Gemfile 中,我有以下内容:

ruby '2.1.0'

当我在控制台中运行ruby -v 时,我得到:

ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin12.0]

Ruby 2.1.0p0 是什么意思?我的 Gemfile 中应该有什么版本,为什么错误告诉我我有 Ruby 版本 2.0.0?

【问题讨论】:

你使用什么 ruby​​ 版本管理器 rvm 或 rbenv? 在项目目录中添加 .rvmrcrvm use 2.1.0 > /dev/null。这个 swith ruby​​ 版本。 这是做什么的?我在我的项目目录中添加了一个名为.rvmrc 的文件并将其放入rvm use 2.1.0 > /dev/null。不幸的是,当我运行 bundle install 时,我仍然收到相同的消息:Your Ruby version is 2.0.0, but your Gemfile specified 2.1.0 运行 rvm list 以查看已安装的 ruby​​ 版本。 并运行 gem install bundlergem update bundler 这可能会解决您的问题。 【参考方案1】:

只需关闭我正在使用的终端并打开一个对我有用的新终端。有时,更新不会立即生效,直到会话关闭。我发现这是我遇到的许多 Rails 错误的情况。

【讨论】:

【参考方案2】:

我打开 Gemfile 并将 2.7.1 替换为我自己的 ruby​​ 版本 2.7.0 现在一切正常。

【讨论】:

【参考方案3】:

我通过将我的 ruby​​ 版本更新为 ruby '2.4.0' 解决了这个问题 然后bundle install

【讨论】:

【参考方案4】:

如果您使用的是 rbenv,只需运行

rbenv local 2.0.0 

然后

bundle install

【讨论】:

【参考方案5】:

这个问题的主要原因是你的机器和 gemfile 使用了不同的 ruby​​ 版本

所以这个问题有多个问题和解决方案,您可以一一尝试以下解决方案

1- 如果您的机器不使用相同版本的 gemfile,请确保您的机器安装并使用相同版本的 gemfile 尝试使用 rvm 安装此版本

$ rvm install ruby_version_you_want

使用此命令确保版本安装成功

$ rvm list

如果新版本没有设置为默认值,您可以使用此命令进行设置

$ rvm --default use ruby_version_you_want 

你可以查看当前的 ruby​​ 版本

 $ rvm current 
 $ ruby -v 

2- 如果您有同样的问题,请检查您的捆绑器

  $ gem install bundler
    or
  $ gem update bundler 

3- 在某些情况下 spring 仍然使用旧版本,所以你需要停止它

$ ./bin/spring stop

4- 你可以输入另一种情况

$ gem pristine --all 

并尝试再次安装 bundle

5- 在某些情况下,在安装更新的 ruby​​ 版本后,您只需要重新启动终端即可。

6- 另一个解决方案,但我不推荐它作为您项目的***目录,创建一个名为 .ruby-version 的文件,其中包含您正在运行的 ruby​​ 版本

7- 如果您仍然遇到此问题,请尝试删除 ruby​​ 并仅安装更新版本

 $ aptitude purge ruby 

【讨论】:

【参考方案6】:

我在一些非常相似的东西上苦苦挣扎,只是版本不同。我终于通过转到RubyGems 并将最新版本的 bundler 放入我的 gemfile 来修复它,目前是:

gem 'bundler', '~> 2.1', '>= 2.1.4'

还是有问题,不过之后我跑了:

gem update --system

它还解决了 rails 项目文件夹中混合版本的 Ruby。在执行此操作之前,您可能必须重新启动终端。另外,我注释掉了 bundler gem 文件,看来 gem update --system 命令才是真正解决它的原因。

我从here得到它:

【讨论】:

【参考方案7】:

有同样的错误。执行以下操作修复了它。我使用的是 ruby​​ 2.5.5 和 rbenv。从 2.5.1 升级。

rbenv 重新散列 gem 卸载捆绑器 gem 安装捆绑器 gem install bundler:1.17.3(我的应用需要特定的 bundler -v 1.17.3) gem 安装导轨

【讨论】:

【参考方案8】:

没有其他建议对我有用。在服务器上,我必须这样做:

rvm --default use [correct version number]

【讨论】:

【参考方案9】:

以上答案都不适合我,但是

$ gem pristine --all

帮我搞定了

幸运儿

【讨论】:

【参考方案10】:

当您安装新版本的 ruby​​ 并将 .ruby-version 和 Gemfile 更新到新版本时,可能会发生这种情况,而没有先为新版本的 ruby​​ 安装所有 gem。也一样

$ bundle install

您可能还需要获取 .profile 或重新启动您的 shell。

【讨论】:

【参考方案11】:

brew cleanup ruby 为我工作,因为我使用 HomeBrew 安装 Ruby。

我最近通过 HomeBrew 更新了 Ruby,但 HomeBrew 没有删除旧版本。 brew cleanup ruby 将删除旧版本的 Ruby。

【讨论】:

【参考方案12】:

感谢您提供有关安装/更新捆绑程序的信息,但它对我不起作用。 我不得不做rbenv rehash

【讨论】:

这个,在 Thiemo 的回答之前,在 Ubuntu 上为我工作。【参考方案13】:

我遇到了错误消息

Your Ruby version is 2.5.1, but your Gemfile specified 2.3.0

并通过以下步骤解决:

    打开位于您目录中的 Gemfile。 将 ruby '2.3.0' 更改为 ruby '2.5.1' 并保存 Gemfile 返回项目并运行捆绑更新。

问题完美解决。

【讨论】:

这不是解决方案。这是一种解决方法。如果代码强制要求2.3.0 版本怎么办。 只更改项目所需的 ruby​​ 版本是一个糟糕的主意。许多事情可能会停止工作。开发者需要使用项目的ruby版本。【参考方案14】:

对我来说,没有一个答案有帮助。我修复了它关闭并再次打开终端。

【讨论】:

这也适用于我,但请记住,这是因为我们所在的终端窗口加载了某种不同的源。我们的默认来源碰巧有效。【参考方案15】:

如果您使用 rbenv 管理您的 ruby​​ 环境,您可以在项目目录中运行 rbenv local 2.1.0 来设置您的 gemfile 要求的 ruby​​ 版本。

【讨论】:

【参考方案16】:

确保您的服务器配置指向正确的 ruby​​ 安装。

我已经在 .ruby-version 文件中更新了我的 Ruby 版本,但这并没有解决问题。 ruby -v 也显示了正确的版本,但我忘记更新我的服务器配置。

例如,对于我的 nginx 服务器块中的 rbenv、NGINX 和 Pushion Passenger:passenger_ruby /Users/myusername/.rbenv/versions/2.3.1/bin/ruby;

我需要更改为...passenger_ruby /Users/myusername/.rbenv/versions/2.3.3/bin/ruby;

然后重启 NGINX 就可以了。

【讨论】:

【参考方案17】:

我在使用ruby-install 升级后得到了这个。修复了这个问题:

gem install bundler

接着是:

$HOME/.rubies/ruby-2.4.1/bin/bundle

不需要指定路径,因为which bundle 表示它已经在使用该路径。但是如果在没有路径的情况下运行bundle,它会给出版本错误。不知道为什么?

【讨论】:

【参考方案18】:

如果您使用 Capistrano,您还应该检查您的 deploy.rb 文件中的 set :rbenv_ruby 配置。

【讨论】:

或者这可能在 Capfile 中【参考方案19】:

对于更高级的项目,支持 .versions.conf,其中可以指定 Ruby 版本以外的版本。

生成 .versions.conf:

rvm --create --versions-conf use 1.9.3@my_app

.versions.conf 示例:

ruby=jruby-1.6.8
ruby-gemset=my_app
env-JRUBY_OPTS=--1.9

【讨论】:

【参考方案20】:

如果您在 Rails 项目中遇到此问题,并且您最近升级了 Ruby 版本,您可能有 spring 仍在运行旧版本的 Ruby。

./bin/spring stop

会解决这个问题。

【讨论】:

【参考方案21】:

运行

gem install bundler

gem update bundler 

这可能会解决您的问题。

对于所有新安装的 Ruby 版本,您应该更新或安装新的捆绑器。

【讨论】:

我遇到了完全相同的问题,但这并没有为我解决。您能否详细说明为什么这会起作用?安装 bundler 后,我仍然得到Your Ruby version is 2.0.0, but your Gemfile specified 2.0.0-p645rbenv 甚至没有 2.0.0。 哈哈。这甚至适用于我的 2.0.0 与 2.2.4 问题,尽管我在更新捆绑程序时收到了 Nothing to update 消息。 ¯_(ツ)_/¯ 遇到了同样的问题,我的 gemfile 指定了 2.2.2,我也有一个 .ruby-version 文件。 rvm info 还给了我 2.2.2 - gem update bundler 修复了错误:) 不必与 rbenv 混淆。 如果您刚刚安装了该版本,重新启动您的 shell 也可能会有所帮助。 也收到了Nothing to update 消息,但gem update bundler 立即生效。【参考方案22】:

在项目的***目录中,创建一个名为.ruby-version 的文件,其中包含(等待...

2.1.0

这显然是现在指定版本的 cross-rbenv,rvm 方式。

【讨论】:

以上是关于您的 Ruby 版本是 2.0.0,但您的 Gemfile 指定了 2.1.0的主要内容,如果未能解决你的问题,请参考以下文章

错误 Ruby“您的 Ruby 版本是 3.0.2,但您的 Gemfile 指定了 2.7.1”

无法运行 rails 命令。您的 Ruby 版本是 2.2.1,但您的 Gemfile 指定了 2.1.4

如何解决“您的捆绑包仅支持平台 ["x86-mingw32"] 但您的本地平台是 ["ruby", "x86_64-linux"]"

ruby 通过自动完成将您的gem加载到irb中

ruby 使用Devise gem验证您的API,使用标头标记。 Ruby on Rails 4.阅读评论。

gem install报错 ruby升级