【问题标题】:Bundler::RubyVersionMismatch: Your Ruby version is 2.3.1, but your Gemfile specified 2.1.8Bundler::RubyVersionMismatch:您的 Ruby 版本是 2.3.1,但您的 Gemfile 指定的是 2.1.8
【发布时间】:2019-08-07 08:11:38
【问题描述】:
Bundler::RubyVersionMismatch: Your Ruby version is 2.3.1, but your Gemfile specified 2.1.8

    /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/definition.rb:417:in `validate_ruby!'
    /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler.rb:91:in `setup'
    /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/setup.rb:19:in `<top (required)>'
    /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'

bundler: failed to load command: rake (/home/deploy/.bundler/app_name/ruby/2.1.0/bin/rake)

它显示的所有地方:2.1.8

ruby -v ==> 2.1.8 Gemfile 有 ==> 2.1.8

不知道它从哪里获取版本 2.3.1。

我想将 2.3.1 从它带到它的任何地方删除。

不确定,这是与服务器上的厨师设置或 ruby​​ 安装有关的错误。

任何帮助将不胜感激。

【问题讨论】:

  • 你能发布你的 Gemfile 的标题吗?它应该包含行ruby "2.1.8"。您应该将该值更改为2.3.1。但要小心,因为您可能需要在您的应用中进行一些重构
  • 所有地方:2.1.8。 ruby -v => 2.1.8 Gemfile => ruby​​ 2.1.8
  • so ruby -v 在服务器上执行也显示 2.1.8?您还可以通过执行which ruby 来检查您的 ruby​​ 是如何在服务器上设置的
  • 是的,在服务器上执行的 ruby​​ -v 也显示 2.1.8。哪个红宝石显示/usr/local/bin/ruby

标签: ruby-on-rails rake bundler


【解决方案1】:

您的 bundle 可执行文件显然链接到本地​​ Chef 安装附带的 Ruby(在本例中使用 Ruby 2.3.1)。

当厨师的可执行文件在您的PATH 中并且您没有在其他地方安装不同版本的捆绑程序时,可能会发生这种情况。

假设你有一个理智的PATH,它可能就足够了

gem install bundler

使用您自己的 Ruby 安装当前版本的 bundler(即安装在 /usr/local 而不是 /opt/chef/embedded)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-09
    • 2013-10-04
    • 1970-01-01
    • 2016-03-04
    • 2014-05-27
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多