【问题标题】:Why is my Heroku push rejected?为什么我的 Heroku 推送被拒绝?
【发布时间】:2013-05-29 03:49:41
【问题描述】:

我正在完成Hartl's Rails 4.0 tutorial 的第 1 章,我被困在第 1.4.2 节,即将一个黑色应用程序推送到 GitHub 和 Heroku。

我尝试输入 git push heroku master,但收到一条错误消息,类似于 StackOverFlow 上的上一个问题:

可能是一样的,但我什至没有意识到:

-----> Ruby/Rails app detected
-----> Installing dependencies using 
       Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment
       /usr/bin/env: ruby1.9.1: No such file or directory
 !
 !     Failed to install gems via Bundler.
 !
 !     Heroku push rejected, failed to compile Ruby/Rails app

这是我使用的 Gemfile:

source 'https://rubygems.org'
ruby '1.9.3'

gem 'rails', '4.0.0.rc1'

group :development do
  gem 'sqlite3', '1.3.7'
end

gem 'sass-rails', '4.0.0.rc1'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.0'
gem 'jquery-rails', '2.2.1'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'

group :doc do
  gem 'sdoc', '0.3.20', require: false
end

group :production do
  gem 'pg', '0.15.1'
end

更新:主要错误似乎是/usr/bin/env: ruby1.9.1: No such file or directory 这个文件夹是在 Heroku 机器上还是我的家用电脑上?

我尝试从.gitignore 中删除ruby '1.9.3' 行,但它仍然返回此消息。

【问题讨论】:

  • 您的 Gemfile 指定了 Ruby 1.9.3,但从 Heroku 返回的消息看来,它使用的是 Ruby 1.9.1。不确定这是否与问题有关
  • 这应该不是问题,我使用 ruby​​ 1.9.3 和 2.0.0 使用了相同的技术。

标签: ruby-on-rails ruby


【解决方案1】:

首先,从Gemfile 中删除ruby 1.9.3。您不需要它,它可能是您的问题的原因。 Gemfile 的开头应如下所示:

source 'https://rubygems.org'

gem 'rails', '4.0.0.rc1'

group :development do
  gem 'sqlite3', '1.3.7'
end

etc........

另外,请确保您运行

bundle install --without production 

因为您在:development 中使用sqlite3,在:production 中使用postgresql

【讨论】:

    【解决方案2】:

    我遇到了类似的问题。问题是 Bundler 正在生成存根。 Rails 4 应用程序不会将存根存储在应用程序的 bin/ 目录中。为了解决这个问题,您需要使用以下命令:

    $ bundle config --delete bin
    

    然后你需要更新 bin 目录以使用新的 Rails 4 可执行文件

    $ rake rails:update:bin
    

    然后使用以下命令将新的 bin/ 目录添加到您的版本控制中:

    $ git add bin
    

    提交更改并将您的代码推送到 Heroku

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,问题是我没有选择我想要使用的 ruby​​ 版本,所以我做了以下操作:

      $rvm list
         ruby-1.9.3-p392 [ i686 ]
         ruby-2.0.0-p247 [ i686 ]
      
      $rvm use  ruby-1.9.3-p392
      
      $rvm list 
          =>   ruby-1.9.3-p392 [ i686 ]
          ruby-2.0.0-p247 [ i686 ]
      

      【讨论】:

        猜你喜欢
        • 2017-01-09
        • 2021-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-16
        • 2019-05-31
        • 2021-05-06
        相关资源
        最近更新 更多