为什么我安装了 2.2.2 却出现错误 "Your Ruby version is 2.0.0, but your Gemfile specified 2.2.2"

Why do I get the error "Your Ruby version is 2.0.0, but your Gemfile specified 2.2.2" although I have 2.2.2 installed

我正在使用 rbenv,当我在我的项目中 运行 bundle install 命令时出现错误 Your Ruby version is 2.0.0, but your Gemfile specified 2.2.2。奇怪的是我实际上安装了 2.2.2 版本(正如我的 Gemfile 指定的),而不是 2.0.0 版本。 (见下图)。

我尝试了这个帖子中提供的解决方案:Your Ruby version is 2.0.0, but your Gemfile specified 2.1.0,但没有效果。

我正在使用 Yosemite 的 MacBook Air,如果这有什么不同的话。

更新:

您安装了系统 bundler,并且 rbenv 一直在尝试获取它。 Based on the steps on this site:

  • 确保您使用的是正确的 gem 版本。输入 which gemgem env 并检查它是否指向您的 2.2.2 ruby 版本
  • 使用此 gem 安装捆绑器:gem install bundler
  • 安装此版本的捆绑器后 运行 rbenv rehash
  • 调用 which bundler,确保它现在指向 bundler
  • 的 shim 版本
如果您覆盖了 GEM_HOMEGEM_PATH 变量,或者如果您在 ~/.gemrc 中有自定义配置,

gem install 可能无法与 rbenv 一起正常工作, ~/.gem/gemrc/etc/gemrc。查看 gem env 的结果,应该是这样的:

- INSTALLATION DIRECTORY: /Users/<youruser>/.rbenv/versions/<ruby-version>/lib/ruby/gems/<ruby-framework-version>
(...)
- GEM PATHS:
  - /Users/<youruser>/.rbenv/versions/<ruby-version>/lib/ruby/gems/<ruby-framework-version>

(注意 ruby-framework-version 并不总是 完全 匹配 ruby-version。如果 ruby-version 是正确的,那么路径应该没问题)

如果没有,请确保您在上述文件中没有任何环境覆盖或自定义配置。

您可能还想尝试从您的计算机中删除所有捆绑程序,然后再试一次:

  • rbenv local system
  • gem uninstall bundler
  • rbenv local 2.2.2
  • gem uninstall bundler

我终于用这个帖子解决了我的问题 Bundler not working with rbenv, could not find [gem],

重新安装 rbenv 后使用这些命令:

  • gem install --no-ri --no-rdoc bundler
  • rbenv rehash
  • bundle --path=vendor/bundle

对我来说,问题是我在安装并切换到新的 ruby 版本后没有正确 re-initialized rbenv。

在我的 shell 配置中,如果未安装 rbenv,我会进行错误检查以避免执行 source (rbenv init -|psub)。手动采购后它再次工作。