Ruby 版本是2.0.0,但 Gemfile 指定为2.1

当我尝试捆绑安装时,我得到如下信息:

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]

Ruby2.1.0 p0是什么意思?我应该有什么版本在我的 Gemfile 和为什么错误告诉我我有 Ruby 版本2.0?

104004 次浏览

快跑

gem install bundler

或者

gem update bundler

也许能解决你的问题。

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

在项目的顶级目录中,创建一个名为 .ruby-version的文件,其中包含(等一下..。)

2.1.0

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

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

如果你在一个 Rails 项目中得到了这个,并且你最近升级了你的 Ruby 版本,你可能会发现 春天仍然在旧版本的 Ruby 上运行。

./bin/spring stop

会解决这个问题的。

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

生成. version. conf:

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

例如:

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表明它已经在使用这个路径。但是如果在没有路径的情况下运行 bundle,就会出现版本错误。我不知道为什么?

确保服务器配置指向正确的 Ruby 安装。

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

例如,在我的 NGINX 服务器块中,有 rbenv,NGINX 和 Pushion  :
passenger_ruby /Users/myusername/.rbenv/versions/2.3.1/bin/ruby;

我需要换衣服。
passenger_ruby /Users/myusername/.rbenv/versions/2.3.3/bin/ruby;

然后重新启动 NGINX,它工作了。

如果使用 rbenv 来管理 Ruby 环境,那么可以在项目目录中运行 rbenv local 2.1.0来设置 gemfile 请求的 Ruby 版本。

对我来说,所有的答案都没有帮助。我修好了终端机的关闭和再次打开。

我面对错误

Your Ruby version is 2.5.1, but your Gemfile specified 2.3.0

通过以下步骤解决:

  1. 打开位于您目录中的 Gemfile。
  2. ruby '2.3.0'改为 ruby '2.5.1'并保存 Gemfile
  3. 返回到条目并运行包更新。

问题完全解决了。

感谢关于安装/更新捆绑包的信息,但它不适合我。 我不得不做 rbenv rehash

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

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

这可能发生在安装新版本的 Ruby 和 update 时。Ruby-version 和 Gemfile 到新版本而不用做安装所有 gems for new version of ruby first。所以

$ bundle install

而且您可能还需要使用.profile 或重新启动您的 shell。

以上的答案对我来说都不管用,但是

$ gem pristine --all

帮了我大忙

祝你好运

在服务器上,我不得不这样做:

rvm --default use [correct version number]

出现了同样的错误。执行以下操作修复了这个错误。我使用的是 ruby 2.5.5和 rbenv。从2.5.1升级。

  • Rbenv Rehash
  • Gem 卸载包
  • Gem 安装包
  • Gem install bundler: 1.17.3(我的应用程序需要特定的 bundler-v 1.17.3)
  • 宝石安装轨道

我曾经为一些非常相似的东西而挣扎,只是不同的版本。我最终修正了这个问题,转到 RubyGems,把 bundler 的最新版本放到了我的 gemfile 文件中,目前是:

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

还有一个问题,但在那之后,我跑了:

gem update --system

它还解决了 Rails 项目文件夹中 Ruby 的混合版本问题。在执行此操作之前,可能必须重新启动终端。另外,我注释掉了 bundler gem 文件,似乎 gem update —— system 命令才是真正解决这个问题的方法。

我从 给你台得到的消息:

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

因此,有多个问题和解决方案,这个问题,你可以尝试一个以下的解决方案

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

$ rvm install ruby_version_you_want

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

$ rvm list

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

$ rvm --default use ruby_version_you_want

您可以检查当前的红宝石版本

 $ rvm current
$ ruby -v

2-如果你有相同的问题检查你的捆绑包

  $ gem install bundler
or
$ gem update bundler

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

$ ./bin/spring stop

4-另一种情况下,你可以打字

$ gem pristine --all

并尝试再次安装 bundle

5-在某些情况下,安装更新后的红宝石版本,你只需要重新启动你的终端。

6-另一个解决方案,但我不建议它的项目的顶级目录,创建一个名为。包含活动运行 Ruby 版本的 ruby-version

7-如果您仍然有这个问题,尝试删除红宝石和安装更新版本只

 $ aptitude purge ruby

如果您使用 rbenv 只是运行

rbenv local 2.0.0

然后

bundle install

我通过将我的红宝石版本更新到 ruby '2.4.0'来解决这个问题 然后是 bundle install

我打开 Gemfile 和取代 2.7.1与我自己的版本的红宝石 2.7.0一切都是好的现在。

只要关闭我工作的终端,再开一个新的就可以了。有时,在会话关闭之前不会立即执行更新。我发现我遇到过很多轨道错误。

遇到了同样的问题,我正在与 rbenv合作

这些步骤帮助我解决了我的问题:

  1. 第一个在终端,类型 which bundle。对我来说,这给了:/usr/local/bin/bundle

  2. 在终端再次尝试 which ruby。在我的情况下给出: /Users/Mahmoud/.rbenv/shims/ruby

因此,这里的问题是 bundle 没有使用来自 rbenv 的同一个 ruby 版本。所以道路需要修复。换句话说,当我使用 bundle install 时,我需要告诉我的终端使用 bundle 的 rbenv 版本。

因此,第三步: 对于我个人来说,我已经在 ~/.bash_profile中设置了路径:

export PATH="$HOME/.rbenv/shims:$PATH"
eval "$(rbenv init -)"

但显然这还不够,因为我正在使用 zsh。还得在 ~/.zshrc上加上这两条线。

  1. 重启终端

现在,bundle install正在按预期运行,而 which bundle给出了:

/Users/Mahmoud/.rbenv/shims/bundle

表明问题只是 bundle 使用了错误的 Ruby。

因此,如果您有这个问题,只要确保 ~/.bash_profile~/.zshrc有正确的路径,添加上面指出的2行。如果这不起作用,那么深入研究路径,确保在开始哪个 bundle 之前给出相当于:

/Users/Mahmoud/.rbenv/shims/bundle

我用它来清洁和安装:

sudo gem pristine --all

然后重新安装:

bundle install