Heroku推被拒绝,未能通过Bundler安装宝石

问题描述 投票:37回答:7

我正在努力将我的代码推送到Heroku。在搜索Google和Stack Overflow问题后,我找不到解决方案。这是我尝试“git push heroku master”时得到的结果:

Heroku receiving push
-----> Rails app detected
-----> Detected Rails is not set to serve static_assets
       Installing rails3_serve_static_assets... done
-----> Gemfile detected, running Bundler version 1.0.3
       Unresolved dependencies detected; Installing...
       Fetching source index for http://rubygems.org/
       /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/remote_fetcher.rb:300:in `open_uri_or_path': bad response Not Found 404 (http://rubygems.org/quick/Marshal.4.8/mail-2.2.6.001.gemspec.rz) (Gem::RemoteFetcher::FetchError)
        from /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/remote_fetcher.rb:172:in `fetch_path'
.
....

最后:

FAILED: http://docs.heroku.com/bundler
 !     Heroku push rejected, failed to install gems via Bundler

error: hooks/pre-receive exited with error code 1
To [email protected]:myapp.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to '[email protected]:myapp.git'

谢谢你的帮助!

ruby-on-rails rubygems heroku ruby-on-rails-3 bundler
7个回答
36
投票

我不认为这是一个Rails版本问题,也不是特定于Heroku。 (今天我在本地开发机器上使用Rails 3.0.3运行bundle install时遇到了同样的问题。)

正如安德鲁建议的那样,在本地运行bundle update解决了这个问题。

编辑:正如评论中所建议的:记住git add .git commit -m "message"


7
投票

我这样解决了这个问题:

  1. 捆绑更新
  2. git添加Gemfile.lock
  3. git commit -m'为Heroku更新Gemfile.lock'
  4. git push heroku master

3
投票

使用:

rm -rf ~/.bundle/ ~/.gem/ .bundle/ Gemfile.lock

我在本地服务器上有Gemfile.lock,请确保从本地服务器和HEROKU V-machine中删除它。


1
投票

我很确定Heroku只支持某些版本的Rails,所以你需要至少3.0,而不是候选版本。更新gemfile中的Rails版本,运行bundle update,然后尝试推送到Heroku。


0
投票

我得到了相同的 - 404:

curl -v -I http://rubygems.org/quick/Marshal.4.8/mail-2.2.6.001.gemspec.rz

在您的Gemfile中,您可以尝试指定此gem的较低版本号? 2.2.5也许?


0
投票

我实际上解决了它,只是在让东西停留几分钟之后再推它一次......我从头开始重新旋转我的dokku系统并遇到同样的问题,在我之前尝试过一个解决方法的同一天更新nokogiri。那时我意识到,这似乎是一种古怪的诡计;它并不总是采取第一次推动。

我想知道它是否在幕后安装库标题,当它们花费太长时间时,捆绑器只是无法安装。


0
投票
  1. 捆绑更新
  2. git添加Gemfile.lock
  3. git commit -m'为Heroku更新Gemfile.lock'
  4. git push heroku master

它对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.