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

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

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版本?

 gem install bundler 

要么

 gem update bundler 

这可能会解决您的问题。

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

在项目的顶层目录中,创build一个名为.ruby-version的文件( 等待它…

 2.1.0 

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

如果你在一个Rails项目中得到了这个,并且你最近升级了你的Ruby版本,那么你可能会在Spring的老版本的Ruby中运行。

 ./bin/spring stop 

将解决这个问题。

如果您正在使用Capistrano,则还应该检查您的deploy.rb文件中是否有set :rbenv_rubyconfiguration。

对于更高级的项目,支持.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 

我使用ruby-install进行升级后得到了这个。 修正了这个问题:

 gem install bundler 

其次是:

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

应该没有必要指定which bundle指示已经使用此path的path。 但是,如果运行没有path的bundle则会出现版本错误。 我不知道为什么?

你的Ruby项目有Gemfile与ruby版本。 将其更改为所需的一个。 在这里输入图像描述

确保你的服务器configuration指向正确的ruby安装。

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

例如,在我的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,它的工作。

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