无法推送到heroku - bundler失败

时间:2014-05-07 19:30:38

标签: ruby-on-rails git heroku deployment

我在尝试将git push heroku master捆绑包失败时尝试将我的rails项目推送到heroku位,并显示以下消息:

   Bundler Output: Fetching gem metadata from https://rubygems.org/.........
   Fetching additional metadata from https://rubygems.org/..
   Fetching git://github.com/justinfrench/formtastic.git
   Fetching git://github.com/activerecord-hackery/ransack.git
   Fetching git://github.com/gregbell/active_admin.git
   Could not find jwt-0.1.12 in any of the sources
!
!     Failed to install gems via Bundler.
!

!     Push rejected, failed to compile Ruby app

To git@heroku.com:murmuring-mountain-9361.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:murmuring-mountain-9361.git'

似乎jwt是我的一个宝石的依赖项,但它在我的本地环境中安装得很好。我尝试在我的gemfile中明确声明gem 'jwt', '0.1.12',这在本地工作正常,但在heroku上没有,我尝试删除Gemfile.lock并再次生成它。我甚至尝试删除heroku上的app实例并再次创建它。

以下要点是我的宝石文件:https://gist.github.com/anonymous/84d3fc00566e036729cd

我在开发环境中使用这个流浪盒:https://github.com/ejholmes/vagrant-heroku

2 个答案:

答案 0 :(得分:8)

如果您在过去几天更新了宝石,那么您将获得一个被拉扯的错误版本。它被重新发布为1.0.0,因为它的API略有不同。我建议使用0.1.11或切换到1.0 ...谢谢,对不起!

答案 1 :(得分:4)

当你使用的Gems版本(通过你的Gemfile.lock)从RubyGems.org中被淘汰时,你会得到这个,而Heroku试图在部署时抓住它们。

你可以看到0.1.12的jwt被http://rubygems.org/gems/jwt/versions拉了。要做的就是查看你的Gemfile.lock,看看哪个gem声明了对0.1.12的依赖,然后分叉那个gem并使版本崩溃,然后使用你的分叉版本。或者联系宝石所有者并给他们创建宝石以抵消依赖。