2012-01-25 14 views
12

Đây là cách nhìn của tôi Gemfile:Không thể đẩy ứng dụng Heroku - Không thể cài đặt đá quý qua Bundler

source 'http://rubygems.org' 

gem 'rails', '3.1.2' 

#gem 'sqlite3' 
gem 'mysql2' 
gem "rvm", "~> 1.9.2" 
gem 'authlogic' 
gem "taps", "~> 0.3.23" 
gem "paperclip", "~> 2.4.5" 
gem 'aws-s3' 
gem 'actionmailer' 

gem 'will_paginate' 

group :assets do 
    gem 'sass-rails', '~> 3.1.5.rc.2' 
    gem 'coffee-rails', '~> 3.1.1' 
    gem 'uglifier', '>= 1.0.3' 
end 

group :production do 
    gem 'therubyracer-heroku', '~> 0.8.1.pre3' 
    gem 'pg' 
end 

gem 'jquery-rails' 

và điều này là kết quả từ đẩy ứng dụng Heroku:

Counting objects: 307, done. 
Delta compression using up to 2 threads. 
Compressing objects: 100% (291/291), done. 
Writing objects: 100% (307/307), 491.60 KiB | 47 KiB/s, done. 
Total 307 (delta 43), reused 0 (delta 0) 

-----> Heroku receiving push 
-----> Ruby/Rails app detected 
-----> Installing dependencies using Bundler version 1.1.rc.7 
     Running: bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment 
     Fetching gem metadata from http://rubygems.org/....... 
     Installing rake (0.9.2.2) 
     Installing multi_json (1.0.4) 
     Installing activesupport (3.1.2) 
     Installing builder (3.0.0) 
     Installing i18n (0.6.0) 
     Installing activemodel (3.1.2) 
     Installing erubis (2.7.0) 
     Installing rack (1.3.6) 
     Installing rack-cache (1.1) 
     Installing rack-mount (0.8.3) 
     Installing rack-test (0.6.1) 
     Installing hike (1.2.1) 
     Installing tilt (1.3.3) 
     Installing sprockets (2.1.2) 
     Installing actionpack (3.1.2) 
     Installing mime-types (1.17.2) 
     Installing polyglot (0.3.3) 
     Installing treetop (1.4.10) 
     Installing mail (2.3.0) 
     Installing actionmailer (3.1.2) 
     Installing arel (2.2.1) 
     Installing tzinfo (0.3.31) 
     Installing activerecord (3.1.2) 
     Installing activeresource (3.1.2) 
     Installing authlogic (3.1.0) 
     Installing xml-simple (1.1.1) 
     Installing aws-s3 (0.6.2) 
     Installing cocaine (0.2.1) 
     Installing coffee-script-source (1.2.0) 
     Installing execjs (1.3.0) 
     Installing coffee-script (2.2.0) 
     Installing rack-ssl (1.3.2) 
     Installing json (1.6.5) with native extensions 
     Installing rdoc (3.12) 
     Installing thor (0.14.6) 
     Installing railties (3.1.2) 
     Installing coffee-rails (3.1.1) 
     Installing jquery-rails (1.0.19) 
     Installing mysql2 (0.3.11) with native extensions 
     Installing paperclip (2.4.5) 
     Installing pg (0.12.2) with native extensions 
     Using bundler (1.1.rc.7) 
     Installing rails (3.1.2) 
     Installing rest-client (1.6.7) 
     Installing rvm (1.9.2) 
     Installing sass (3.1.12) 
     Installing sass-rails (3.1.5) 
     Installing sequel (3.20.0) 
     Installing sinatra (1.0) 
     Installing sqlite3 (1.3.5) with native extensions Unfortunately, a fatal error has occurred. Please report this error to the Bundler issue tracker at https://github.com/carlhuda/bundler/issues so that we can fix it. Thanks! 
     /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:483:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError) 
     /usr/local/bin/ruby extconf.rb 
     checking for sqlite3.h... no 
     sqlite3.h is missing. Try 'port install sqlite3 +universal' 
     or 'yum install sqlite-devel' and check your shared library search path (the 
     location where your sqlite3 shared library is located). 
     *** extconf.rb failed *** 
     Could not create Makefile due to some reason, probably lack of 
     necessary libraries and/or headers. Check the mkmf.log file for more 
     details. You may need configuration options. 
     Provided configuration options: 
     --with-opt-dir 
     --without-opt-dir 
     --with-opt-include 
     --without-opt-include=${opt-dir}/include 
     --with-opt-lib 
     --without-opt-lib=${opt-dir}/lib 
     --with-make-prog 
     --without-make-prog 
     --srcdir=. 
     --curdir 
     --ruby=/usr/local/bin/ruby 
     --with-sqlite3-dir 
     --without-sqlite3-dir 
     --with-sqlite3-include 
     --without-sqlite3-include=${sqlite3-dir}/include 
     --with-sqlite3-lib 
     --without-sqlite3-lib=${sqlite3-dir}/lib 
     --enable-local 
     --disable-local 
     Gem files will remain installed in /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.5 for inspection. 
     Results logged to /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.5/ext/sqlite3/gem_make.out 
     from /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:486:in `block in build_extensions' 
     from /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:446:in `each' 
     from /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:446:in `build_extensions' 
     from /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:198:in `install' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/source.rb:90:in `block in install' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/rubygems_integration.rb:82:in `preserve_paths' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/source.rb:89:in `install' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/installer.rb:73:in `block in install_gem_from_spec' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/rubygems_integration.rb:97:in `with_build_args' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/installer.rb:72:in `install_gem_from_spec' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/installer.rb:56:in `block in run' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/installer.rb:55:in `run' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/installer.rb:12:in `install' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/cli.rb:220:in `install' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/vendor/thor/task.rb:22:in `run' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/vendor/thor.rb:263:in `dispatch' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/vendor/thor/base.rb:386:in `start' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/bin/bundle:13:in `<top (required)>' 
     from vendor/bundle/ruby/1.9.1/bin/bundle:19:in `load' 
     from vendor/bundle/ruby/1.9.1/bin/bundle:19:in `<main>' 
! 
!  Failed to install gems via Bundler. 
!  
!  Detected sqlite3 gem which is not supported on Heroku. 
!  http://devcenter.heroku.com/articles/how-do-i-use-sqlite3-for-development 
! 
!  Heroku push rejected, failed to compile Ruby/rails app 

To [email protected]:_my_repo_.git 
! [remote rejected] master -> master (pre-receive hook declined) 
error: failed to push some refs to '[email protected]:_my_repo_.git' 

gì là sai? Tôi có cùng một thiết lập trong ứng dụng khác của tôi và nó hoạt động tốt ... Tôi sẽ biết ơn rất nhiều cho mọi trợ giúp, đấu tranh với vấn đề này cả buổi chiều ...

EDIT: Ngoài ra tôi đã cố gắng loại bỏ kho lưu trữ và tạo ra một cái mới, nhưng vẫn như cũ.

+0

Dường như nó đang cố gắng cài đặt đá quý SQLite.Bạn có chắc chắn rằng nó đã nhận xét trong Gemfile mà bạn đang đẩy vào Heroku? – mipadi

+0

Tôi hoàn toàn chắc chắn. – user984621

+0

Bạn đã tạo lại tệp Gemfile.lock của mình sau khi nhận xét nó chưa? – mipadi

Trả lời

9

Vì vậy, sau một chút nói chuyện với suporters Heroku, các "vấn đề" là trong taps đá quý - sqlite3 có một hiệp hội với nó. Các giải pháp làm việc là:

group :development do 
    gem 'taps' 
    gem 'rvm' 
end 
+0

Làm việc cho tôi - cảm ơn bạn rất nhiều! – eckza

+0

Vui vì nó đã giúp bạn :) – user984621

1

Bạn cần làm bundle tại dòng lệnh trong thư mục dự án của mình.

Điều này sẽ cập nhật tệp Gemfile.lock của bạn - bạn cần phải cam kết cả hai tệp này và Gemfile và sau đó gửi lại cho Heroku.

+0

Tôi đã thử nó đã và vẫn còn lỗi tương tự. Tôi đã thử 'bundle',' bundle install', 'bundle update', nhưng vẫn còn lỗi tương tự khi tôi cố gắng triển khai ứng dụng để Heroku – user984621

+0

kiểm tra lại đầu ra của trạng thái git của bạn để đảm bảo bạn không có tệp mà bạn chưa thêm và cam kết git trước khi bạn đẩy tới Heroku. –

+0

khi tôi gõ 'git status', do đó kết quả là' # Trên nhánh master không có gì để cam kết (làm sạch thư mục) '- không có gì để đọc từ – user984621

2

Bạn đã thêm Gemfile vào bản sao làm việc và cam kết nó vào kho lưu trữ cục bộ của bạn chưa? Có lẽ bạn đang đẩy phiên bản cũ của Gemfile và Gemfile.lock?

+0

này, tôi đã cố gắng loại bỏ bây giờ một' Gemfile.lock', chạy 'bó install', Gemfile.lock đã được tạo và khi tôi cố gắng đẩy ứng dụng vào Heroku, một lần nữa lỗi tương tự ... – user984621

+1

Bạn đã thực thi "git add Gemfile" và "git commit" chưa? –

+0

yes, 'git add Gemfile' ->' git commit' -> '# Trên nhánh master không có gì để cam kết (làm sạch thư mục)' – user984621

27

Chỉ cần đặt sqlite3 của bạn dưới nhóm text/phát triển trong Gemfile, thêm thinpg trong sản xuất nhóm gemfile thêm:

  1. chỉnh sửa các Gemfile như sau:

    gem 'sqlite3', :group => [:development, :test] 
    group :production do 
        gem 'thin' 
        gem 'pg' 
    end 
    
  2. loại bỏ Gemfile.lock

  3. chạy bundle install --without production
  4. git add .
  5. git commit -am "bundle updating sqlite3"
  6. git push heroku +master
+0

Tôi đã thử cả hai biến mà bạn viết ... và vẫn như cũ. – user984621

+0

bạn đã đóng gói như thế nào? Xem cập nhật ... –

+2

xóa Gemfile.lock là khóa ở đây. nó làm việc cho tôi. – Edwin

2

Trong Gemfile thay thế 'viên ngọc sqlite3' với tiếp theo:

group :development do 
gem 'sqlite3' 
end 
gem 'pg' 
5

Nếu bạn thay đổi Gemfile KHÔNG quên

git add . 
git commint -m"ufff" 

sau đó

git push heroku master 
0

Tôi có một vị trí hơi độc đáo ion với 'người gửi thư' của đá quý.

Tôi đã cài đặt đá quý cho tất cả các môi trường, nhưng tôi nhận ra rằng một trong các phụ thuộc của nó là sqlite3. Tôi đã chuyển gemcatcher mail tới nhóm phát triển và nó đã sửa lỗi của tôi.