将Rails App推送到Heroku时出错

时间:2010-12-20 08:07:06

标签: ruby-on-rails git heroku

我一直在试图部署我的第一个rails应用程序并试图找出所有设置内容的railsstutorial.org。这应该只是一键式的东西,更新到最新的ruby /最新的rails,设置git,你很高兴,但这是一个巨大的头痛。对不起,我不得不发泄。

当我在我的测试应用程序first_app的当前目录中尝试推送到heroku时出现错误:

XXXXXX-Computer:first_app XXXXXX$ git push heroku master
fatal: The remote end hung up unexpectedly

搜索错误导致我https://git.wiki.kernel.org/index.php/GitFaq#Git_push_fails_with_.22fatal:_The_remote_end_hung_up_unexpectedly.22.3F 这表明我的公钥可能无法正确安装。我已经能够推送到git repo并检查我的heroku密钥按预期吐出我的公钥:

XXXXXX-Computer:first_app XXXXXX$ heroku keys
=== 1 key for XXXXXX@gmail.com
ssh-rsa AAAAB3NzaC...u4iGALvQ== XXXXXX@gmail.com

我与教程的唯一不同之处在于我使用的是ruby 1.8.7 / rails 3.03,因为我在使用ruby版本管理器rvm时遇到了一些麻烦。我可以将ruby更新到1.9.2,但是当我去检查rails版本时,我得到了这个:

XXXXXX-Computer:first_app XXXXXX$ rails -v
/Library/Ruby/Site/1.8/rubygems.rb:779:in `report_activate_error': Could not find RubyGem rails (>= 0) (Gem::LoadError)

来自/Library/Ruby/Site/1.8/rubygems.rb:214:in activate' from /Library/Ruby/Site/1.8/rubygems.rb:1082:in gem'  来自/ usr / bin / rails:18

这是我第一次使用git和rvm,所以如果这是一个基本问题我会道歉。我已经尝试了一段时间,并没有在应该是一件简单的事情上取得那么大的进展。我非常感谢stackoverflow的集体天才可以提供任何帮助。提前谢谢。

3 个答案:

答案 0 :(得分:3)

Heroku会告诉你它是否是一个关键问题。这个错误听起来更像是一个git / network问题。

Heroku偶尔会出现推送问题,您可以在此监控:http://status.heroku.com/。当它发生时,你所能做的就是等待,稍后再试。

它也可能是heroku遥控器的配置。您可以发布git remote show heroku的输出以确定吗?

至于升级,这不应该影响你。 Gems特定于您安装它们的ruby版本,因此如果您升级到1.9,则必须重新安装您的gem。这就是为什么rails在1.9上出错了。

答案 1 :(得分:1)

所以...在任何教程中都没有真正建议它,但是从终端登录到heroku解决了seg故障问题并得到了我的应用程序:

heroku login
  Email: ******
  Password: ******

git push heroku master

耶!

答案 2 :(得分:0)

您似乎无法在评论中添加代码段,并且无法使用回车键完成新行。现在这个和一个较慢的连接可能导致我发送多个电子邮件通知。

无论如何,感谢您对宝石错误的回应和澄清。这是git remote show的输出:

heroku
origin

和git remote show heroku:

fatal: The remote end hung up unexpectedly

同样的错误。

如果它有帮助,我只是cd到该目录并检查我的.git / config文件并看到:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
[remote "origin"]
    url = git@github.com:XXXXXX/first_app.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[remote "heroku"]
    url = git@heroku.com:stark-galaxy-XXX.git
    fetch = +refs/heads/*:refs/remotes/heroku/*

检查heroku信息:

XXXXXX-Computer:first_app XXXXXX$ heroku info
=== stark-galaxy-XXX
Web URL:        http://stark-galaxy-XXX.heroku.com/
Git Repo:       git@heroku.com:stark-galaxy-XXX.git
Dynos:          1 
Workers:        0
Stack:          bamboo-ree-1.8.7
Addons:         Shared Database 5MB
Owner:          XXXXXX@gmail.com

我只是尝试删除我的应用,卸载heroku,然后再试一次。我根据http://docs.heroku.com/renaming-apps#manually-updating-a-git-remote手动更新了一个git遥控器:

XXXXXX-Computer:first_app XXXXXX$ git remote rm heroku
XXXXXX-Computer:first_app XXXXXX$ git remote add heroku git@heroku.com:quiet-mountain-XXX.git

并检查它是否被添加:

XXXXXX-Computer:first_app XXXXXX$ git remote -v
heroku git@heroku.com:quiet-mountain-XXX.git (fetch)
heroku git@heroku.com:quiet-mountain-XXX.git (push)
origin git@github.com:XXX/first_app.git (fetch)
origin git@github.com:XXX/first_app.git (push)

但继续得到:

XXXXXX-Computer:first_app XXXXXX$ git remote show heroku
fatal: The remote end hung up unexpectedly

XXXXXX-Computer:first_app XXXXXX$ git push heroku master
fatal: The remote end hung up unexpectedly