【问题标题】:Bundler::RubyVersionMismatch: Your Ruby version is 1.9.3, but your Gemfile specified 2.0.0Bundler::RubyVersionMismatch:您的 Ruby 版本是 1.9.3,但您的 Gemfile 指定的是 2.0.0
【发布时间】:2013-11-25 17:58:14
【问题描述】:

我正在使用带有 Pow、Ruby、Rails 和一堆有用 gem 的 Mac。我最近每次尝试打开我的应用时都会收到此错误。

Bundler::RubyVersionMismatch:您的 Ruby 版本是 1.9.3,但您的 Gemfile 指定的是 2.0.0

我了解该错误,但我无法在此处找到它未使用正确版本的原因。

一些有用的信息:

堆栈跟踪

Bundler::RubyVersionMismatch: Your Ruby version is 1.9.3, but your Gemfile specified 2.0.0
~/.rvm/gems/ruby-2.0.0-p247/gems/bundler-1.3.5/lib/bundler/definition.rb:361:in `validate_ruby!'
~/.rvm/gems/ruby-2.0.0-p247/gems/bundler-1.3.5/lib/bundler.rb:116:in `setup'
~/.rvm/gems/ruby-2.0.0-p247/gems/bundler-1.3.5/lib/bundler/setup.rb:17:in `<top (required)>'
~/Dropbox/Documents/project/Sites/project-profile/config.ru:3:in `block in <main>'
~/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/builder.rb:4:in `instance_eval'
~/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/builder.rb:4:in `initialize'
~/Dropbox/Documents/project/Sites/project-profile/config.ru:1:in `new'
~/Dropbox/Documents/project/Sites/project-profile/config.ru:1:in `<main>'
~/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:50:in `eval'
~/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:50:in `load_config'
~/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:43:in `initialize'
~/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:13:in `new'
~/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:13:in `run'
~/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/bin/nack_worker:4:in `<main>'

RVM 和 Ruby 版本

$> ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.5.0]
$> rvm use 
Using /Users/Alex/.rvm/gems/ruby-2.0.0-p247

知道我在这里缺少什么吗? 谢谢!

【问题讨论】:

  • 您的项目中是否有任何 .ruby-version 文件,并且您可能还需要粘贴您的 Gemfile,如果您有 .ruby-version 它可能会在您切换到时更改 ruby​​ 的版本文件夹
  • 您是否同时使用 rbenv 和 rvm?
  • 我正在使用 RVM,但我的系统上也安装了 rbenv,打印 rbenv versions 结果有点混乱,对此感到抱歉。

标签: ruby-on-rails ruby rvm rack-pow gem-bundler


【解决方案1】:

我终于在RVM documentation找到了解决办法:

Pow 已删除 rvm 的自动检测,这是如何实现的 通过在项目的根目录中创建 .powenv 来恢复,根据 Pow 文档不应将其签入源代码管理(除非所有 团队成员对此表示同意)。

这些行必须添加到项目根目录下的.powenv 文件中。然后在重新启动服务器后,一切都像魅力一样!

# detect `$rvm_path`
if [ -z "${rvm_path:-}" ] && [ -x "${HOME:-}/.rvm/bin/rvm" ]
then rvm_path="${HOME:-}/.rvm"
fi
if [ -z "${rvm_path:-}" ] && [ -x "/usr/local/rvm/bin/rvm" ]
then rvm_path="/usr/local/rvm"
fi

# load environment of current project ruby
if
  [ -n "${rvm_path:-}" ] &&
  [ -x "${rvm_path:-}/bin/rvm" ] &&
  rvm_project_environment=`"${rvm_path:-}/bin/rvm" . do rvm env --path 2>/dev/null` &&
  [ -n "${rvm_project_environment:-}" ] &&
  [ -s "${rvm_project_environment:-}" ]
then
  echo "RVM loading: ${rvm_project_environment:-}"
  \. "${rvm_project_environment:-}"
else
  echo "RVM project not found at: $PWD"
fi

【讨论】:

  • .powenv 文件到底在哪里?我好像没找到。
  • 你必须自己创建它:touch .powenv在项目目录的根目录下。然后,您可以使用任何文本编辑器对其进行编辑。请注意,点文件(以“.”开头的文件名)默认情况下在类 unix 操作系统上是隐藏的。
  • 这失败了.powrc' failed to load: true &amp;&amp;
  • @Trip 会不会和stackoverflow.com/questions/14435735/…有关?
【解决方案2】:

也许在您的项目根文件夹中检查.rvmrc 中的版本。如果你还没有创建它。移动到终端中的项目文件夹并输入rvm --create --rvmrc 2.0.0-p247@yourgemsetname。在您必须指向您的父文件夹并返回您的项目文件夹之后。最新版本的rvm 使用.ruby_version 而不是.rvmrc

【讨论】:

    【解决方案3】:

    touch .ruby-version

    添加ruby-2.0.0

    再试一次。使用 Pow + RVM + ruby​​-2.2.1 为我工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-20
      • 1970-01-01
      • 2016-03-04
      • 2014-05-27
      • 1970-01-01
      • 2016-08-17
      相关资源
      最近更新 更多