通过 bundler 安装时 Ruby 版本不兼容

Posted

技术标签:

【中文标题】通过 bundler 安装时 Ruby 版本不兼容【英文标题】:Ruby version incompatibility when installing via bundler 【发布时间】:2016-11-09 10:53:51 【问题描述】:

我想通过 bundler 安装 ruby​​ on rails 应用程序:

bundle install

它让我出现以下错误:

Your Ruby version is 2.0.0, but your Gemfile specified 2.3.0

但是,如果我运行 ruby -v,我会得到以下输出:

ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]

【问题讨论】:

如果你这样做sudo ruby -v显示的版本是什么 你在使用 rvm 吗? 是的@M.Karim 一样。 【参考方案1】:

您的 Ruby 版本没问题,我认为问题出在 bundle 命令上。您从系统预装的旧 Ruby 中调用 bundle。运行which bundle 找到它。我建议切换到旧 Ruby,然后卸载 gem bundler,然后切换到新 Ruby 并重新安装 gem bundler

不清楚您使用的是哪个 Ruby 版本管理器,因此基本命令流程如下所示:

gem uninstall bundler # this command may require sudo
gem install bundler

如果不起作用,请尝试在命令之间切换 Ruby 版本。

【讨论】:

【参考方案2】:

上次ruby的版本有些问题。

案例1,你应该检查你的Gemfile,如果你的Gemfile有这行:

ruby '2.0.0',你应该换成ruby '2.3.0',这样就可以了。

Case2,如果您尝试执行 case1,但它不起作用,请检查 folder project 中的文件 .ruby-version。如果它存在,你只会改变:

2.0.02.3.0,我认为它也会起作用。

【讨论】:

【参考方案3】:

你用什么红宝石马槽? rvm, rbenv, chruby ?

尝试在您的项目文件夹中添加以下文件 .ruby-version 在这个文件中放入以下行

ruby-2.3.1

然后切换到您的主目录(或任何其他文件夹)并再次切换回项目文件夹

并确保它是哪个 ruby​​ 管理器,它已加载替换系统默认值。

在您回复后,我可能会为您提供更多帮助。

【讨论】:

【参考方案4】:

试试bundle update。您的Gemfile.lock 中可能有bundle install 试图遵循的不正确版本。

【讨论】:

bundle update 给了我一个Your Ruby version is 2.0.0, but your Gemfile specified 2.3.0 你能看一下Gemfile,看看ruby条目是否重复?

以上是关于通过 bundler 安装时 Ruby 版本不兼容的主要内容,如果未能解决你的问题,请参考以下文章

Bundler 找不到 gem "bundle" 的兼容版本

Bundler 找不到 gem mandrill-api 的 gem "excon" 的兼容版本

Error-Bundler 找不到 gem“bundle”的兼容版本:在 Heroku 上推送项目时

Bundler 找不到 gem "rails" 的兼容版本:用于狂欢

Bundler 找不到 gem 的兼容版本

heroku 上的 therubyracer 错误为“无法通过 Bundler 安装 gems”。