2012-01-25 13 views
12

To jak wygląda moich Gemfile:Nie można naciskać aplikacji Heroku - Nie udało się zainstalować perełki poprzez 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' 

i to jest wyjście z popychanie aplikację do 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' 

Co jest źle? Mam tę samą konfigurację w mojej innej aplikacji i działa dobrze ... będę wdzięczny za każdą pomoc, zmagając się z tym problemem całe popołudnie ...

EDYCJA: Próbowałem również usunąć repozytorium i utworzyć nowy, ale wciąż taki sam.

+0

Wygląda na to, że próbuje zainstalować klej SQLite.Jesteś pewien, że jest to skomentowane w Gemfile, że naciskasz na Heroku? – mipadi

+0

Jestem absolutnie pewien. – user984621

+0

Czy odtworzyć plik Gemfile.lock po skomentowaniu go? – mipadi

Odpowiedz

9

Więc po trochę rozmowie z suporters Heroku, "problem" było w taps gem - sqlite3 ma stowarzyszenie do niego. Roztwór roboczy brzmi:

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

Pracowałem dla mnie - dziękuję bardzo! – eckza

+0

Cieszę się, że ci pomogło :) – user984621

1

Musisz wykonać bundle w wierszu poleceń w folderze projektu.

Spowoduje to aktualizację pliku Gemfile.lock - musisz zatwierdzić zarówno ten, jak i Gemfile, a następnie ponownie wysłać go do Heroku.

+0

Próbowałem już i wciąż ten sam błąd. Próbowałem 'bundle',' bundle install', 'bundle update', ale wciąż ten sam błąd, gdy próbuję wdrożyć aplikację do Heroku – user984621

+0

dokładnie sprawdź wyjście twojego statusu git, aby upewnić się, że nie masz plików, które nie dodałem i nie powierzyłem się git przed wrzuceniem do Heroku. –

+0

kiedy wpisuję 'git status', więc wynikiem jest' # On branch master nic do zatwierdzenia (czysty katalog roboczy) '- nic do odczytu z tego – user984621

2

Czy dodałeś Gemfile do kopii roboczej i przekazałeś ją do lokalnego repozytorium? Może wypychasz starą wersję Gemfile i Gemfile.lock?

+0

Próbowałem usunąć teraz pakiet' Gemfile.lock', uruchomiony ' install', został stworzony Gemfile.lock i kiedy próbowałem przesłać aplikację do Heroku, ponownie ten sam błąd ... – user984621

+1

Czy wykonałeś "git add Gemfile" i "git commit"? –

+0

tak, 'git add Gemfile' ->' git commit' -> '# Na oddziale master nic do zatwierdzenia (czysty katalog roboczy)' – user984621

27

Wystarczy umieścić swój sqlite3 ramach grupy text/rozwoju w Gemfile, dodając thin i pg w grupie gemfile produkcji także:

  1. edycji Gemfile jak następuje:

    gem 'sqlite3', :group => [:development, :test] 
    group :production do 
        gem 'thin' 
        gem 'pg' 
    end 
    
  2. usunąć Gemfile.lock

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

Próbowałem teraz obu wariantów, które piszesz ... i wciąż są takie same. – user984621

+0

skąd się pakowałeś? Zobacz aktualizację ... –

+2

usunięcie klucza Gemfile.lock jest tutaj kluczowe. to zadziałało dla mnie. – Edwin

2

W Gemfile zastąpić 'sqlite3 gem' z następnym:

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

Jeżeli zmienisz Gemfile NIE zapomnieć

git add . 
git commint -m"ufff" 

następnie

git push heroku master 
0

Miałem nieco wyjątkową sytuację jon z klejnotem "mailcatcher".

Miałem klejnot zainstalowany dla wszystkich środowisk, ale zdałem sobie sprawę, że jedną z jego zależności jest sqlite3. Przenieśliłem klejnotu mailcatcher do grupy programistów i naprawił on mój problem.