你的 Ruby 版本是 2.0.0,但你的 Gemfile 文件要求的是 2.1.0 版本。

74

当我尝试运行bundle install时,我收到以下消息:

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?


2
在项目目录中添加.rvmrc文件,其中包含rvm use 2.1.0 > /dev/null命令,以切换Ruby版本。 - Roman Kiselenko
那是做什么用的?我在我的项目目录中添加了一个名为.rvmrc的文件,并在其中加入了rvm use 2.1.0 > /dev/null。不幸的是,当我运行bundle install时,我仍然收到相同的消息:Your Ruby version is 2.0.0, but your Gemfile specified 2.1.0 - stecd
1
运行 rvm list 命令查看已安装的 Ruby 版本。 - Roman Kiselenko
运行 gem install bundlergem update bundler 可能会解决您的问题。 - Roman Kiselenko
我更新了 Gemfile 然后运行了 Bundle install,这对我起作用了。 - Ivan Carrasco Quiroz
显示剩余3条评论
24个回答

110

运行

gem install bundler
或者
gem update bundler 

这可能会解决你的问题。

对于所有新安装的 Ruby 版本,您应该更新或安装一个新的 bundler。


11
我遇到了完全相同的问题,但这个解决方法对我没有用。您能再详细解释一下为什么这个方法会起作用吗?安装了 bundler 后,我仍然收到 Your Ruby version is 2.0.0, but your Gemfile specified 2.0.0-p645 的错误提示。rbenv 中甚至没有 2.0.0 版本可供使用。 - Joost
7
哈。这个方法甚至可以解决我的2.0.0和2.2.4版本之间的问题,尽管在更新bundler时我收到了“没有需要更新”的消息。¯_(ツ)_/¯ - manmal
遇到了同样的问题,我的Gemfile指定了2.2.2版本,我也有一个.ruby-version文件。rvm info命令也显示我正在使用2.2.2版本 - 运行gem update bundler命令解决了这个错误 :) 不需要去操作rbenv - Adam Cooper
5
如果您刚刚安装了该版本,重新启动您的命令行界面也许会有所帮助。 - Courtney Pattison
也收到了“没有更新”的消息,但是运行“gem update bundler”立即就起效了。 - Mark Peterson
同样的情况,我也收到了“没有更新”的消息,但它不知何故还是起作用了。不确定为什么... - Realizt30

15
在你的项目顶层目录中,创建一个名为.ruby-version的文件,其中包含(等等...
2.1.0

显然这是交叉{rbenv,rvm}规定版本的方式。


14

对我来说,所有答案都没有帮助。我通过关闭并重新打开终端来解决了问题。


这对我也起作用了,但请记住,这是因为我们所在的终端窗口加载了某种不同的源。我们的默认源恰好可以工作。 - KazaJhodo

13

如果你在Rails项目中遇到这个问题,并且最近升级了Ruby版本,那么可能是因为旧版本的Ruby仍在运行spring

./bin/spring stop

会修复此问题。


7

对我来说,其他建议都没有起作用。在服务器上,我必须执行以下操作:

rvm --default use [正确的版本号]


4

brew cleanup ruby 对我很有用,因为我使用HomeBrew安装Ruby。

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


4
这个问题的主要原因是你的电脑和Gemfile使用了不同的Ruby版本。
因此,这个问题有多种问题和解决方案,你可以逐一尝试以下解决方案:
1- 确保你的电脑安装并使用与你的Gemfile相同的版本。如果你的电脑没有使用相同的版本,请尝试使用rvm安装该版本。
$ rvm install ruby_version_you_want

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

$ rvm list

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

$ rvm --default use ruby_version_you_want 

您可以检查当前的 Ruby 版本。

 $ rvm current 
 $ ruby -v 

2- 如果您遇到相同的问题,请检查您的bundler。

  $ 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 

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

或者这可以在 Capfile 中。 - Jerome

3
感谢提供有关安装/更新bundler的信息,但对我来说并没有起作用。 我必须执行rbenv rehash

在Ubuntu上,这个(指Thiemo的回答前面提到的)对我有效。 - eddz

3

我在使用ruby-install进行升级后遇到了这个问题。通过以下方式解决:

gem install bundler

接着是:

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

不需要指定路径,因为which bundle已经使用了这个路径。但是如果不带路径运行bundle会出现版本错误。我不知道为什么。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接