使用heroku_san gem时出错:您的Ruby版本是x.x.x,但您的Gemfile指定了x.x.x(Bundler :: RubyVersionMismatch)

时间:2013-09-27 16:59:31

标签: ruby-on-rails ruby ruby-on-rails-3 heroku

升级Rails应用程序以使用Ruby 2.0.0(从1.9.3开始)后,我在尝试通过rake <stage> deploy部署到Heroku时开始收到此错误。

 Your Ruby version is 1.9.3, but your Gemfile specified 2.0.0 (Bundler::RubyVersionMismatch)

它似乎也会导致此错误,(但我可以在没有heroku_san帮助程序的情况下手动运行Heroku命令,因此授权不是问题。)

Expected(200) <=> Actual(401 Unauthorized)

我将宝石更新为最新版本,并更新了Heroku Toolbelt。

我找到了这个pull request并修补了我的版本,但错误仍然存​​在。

如何解决此问题(在Ubuntu和OSX上)?

其他信息:

  • Ubuntu 12.04 LTS x64
  • Rails 3.2.13
  • Ruby 2.0.0-p247
  • 的Heroku-API-0.3.15
  • heroku_san-4.0.8
  • heroku-toolbelt / 2.41.0(x86_64-linux)
  • rvm 1.22.10

2 个答案:

答案 0 :(得分:3)

我在Ubuntu上的解决方案是修改

/usr/local/heroku/bin/heroku

将shebang线改为

#!/usr/bin/env ruby

感谢Pivotal Labs

(我不使用Mac。)

答案 1 :(得分:0)

我发现此错误的另一个问题(1.9.2而不是1.9.3)是在heroku上设置了BUNDLE_GEMFILE env变量,导致heroku ruby​​ build pack变得怪异并默认为1.9.2。