2011-01-01 39 views
32

Tôi đang đấu tranh để đẩy mã của tôi vào Heroku. Và sau khi tìm kiếm câu hỏi về Google và Stack Overflow, tôi đã không thể tìm ra giải pháp. Dưới đây là những gì tôi nhận được khi tôi cố gắng "git push Heroku bậc thầy":Heroku đẩy bị từ chối, không cài đặt được đá quý qua Bundler

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' 
. 
.... 

Và cuối cùng:

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' 

Nhờ sự giúp đỡ của bạn!

Trả lời

30

Tôi không nghĩ rằng đó là sự cố phiên bản Rails, cũng không phải là vấn đề cụ thể đối với Heroku. (Tôi nhấn cùng một vấn đề ngày hôm nay, khi chạy bundle install trên máy phát triển địa phương của tôi, với Rails 3.0.3.)

Chạy bundle update tại địa phương, như Andrew đề xuất, khắc phục vấn đề.

Sửa: Như đã đề cập trong các ý kiến: nhớ để git add ., git commit -m "message"

0

tôi nhận được cùng - 404:

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

Trong Gemfile của bạn, bạn có thể thử xác định một số phiên bản thấp hơn của đá quý này? 2.2.5 có lẽ?

+0

tôi nghĩ rằng nó là ở phía bên Heroku, vì Gemfile của tôi là cực kỳ đơn giản: đá quý 'đường ray', '3.0.0.rc' đá quý 'twitter_oauth' đá quý 'json' đá quý 'pg' – ismaelsow

+0

Có một lý do tại sao bạn đang sử dụng một phiên bản cũ của Rails? Tại sao bạn không nhìn thấy nếu xác định 3.0.3 làm việc cho bạn? – stef

1

Tôi chắc rằng Heroku chỉ hỗ trợ các phiên bản Rails nhất định, vì vậy bạn cần phải có ít nhất 3.0, thay vì ứng cử viên phát hành. Cập nhật phiên bản Rails trong gemfile của bạn, chạy bundle update và sau đó cố gắng đẩy tới Heroku.

2

Sử dụng:

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

tôi đã Gemfile.lock tại Cục bộ của tôi hãy chắc chắn để xóa nó khỏi LocalServer VÀ cũng là máy HEROKU V.

4

tôi giải quyết vấn đề này theo cách này:

  1. bó cập nhật
  2. git add Gemfile.lock
  3. git commit -m 'Cập nhật Gemfile.lock cho Heroku'
  4. git push Heroku chủ
0

Tôi thực sự đã giải quyết nó bằng cách đơn giản đẩy nó lên lần thứ hai sau khi để mọi thứ ngồi trong vài phút ... Tôi đã quay lại hệ thống dokku của mình từ cratch và gặp phải cùng một vấn đề, trong cùng một ngày sau khi tôi đã cố gắng giải quyết vấn đề nokogiri trước đây. Đó là khi tôi nhận ra, điều này có vẻ là một sự kỳ quặc của cô ấy; nó không phải lúc nào cũng thực hiện cú đẩy đầu tiên.

Tôi tự hỏi nếu đằng sau hậu trường, nó cài đặt tiêu đề thư viện và khi mất quá nhiều thời gian, gói đơn giản không cài đặt được.

Các vấn đề liên quan