2012-11-25 10 views
9

stavo cercando di spingere i miei rotaie app per Heroku e ricevuti errori come di seguito:Errori di spingere rotaie app per errore Heroku si sono verificati durante l'installazione sqlite3, e Bundler non possono continuare

-

Counting objects: 177, done. Delta compression using up to 2 threads. 
    Compressing objects: 100% (161/161), done. Writing objects: 100% 
    (177/177), 44.73 KiB, done. Total 177 (delta 39), reused 0 (delta 0) 

    -----> Heroku receiving push 
    -----> Ruby/Rails app detected 
    -----> Installing dependencies using Bundler version 1.2.1 
      Running: bundle install --without development:test --path vendor/bundle - 
    -binstubs bin/ 
      Fetching gem metadata from 
      Fetching gem metadata from 
      Installing rake (10.0.2) 
      Installing i18n (0.6.1) 
      Installing multi_json (1.3.7) 
      Installing activesupport (3.2.8) 
      Installing builder (3.0.4) 
      Installing activemodel (3.2.8) 
      Installing erubis (2.7.0) 
      Installing journey (1.0.4) 
      Installing rack (1.4.1) 
      Installing rack-cache (1.2) 
      Installing rack-test (0.6.2) 
      Installing hike (1.2.1) 
      Installing tilt (1.3.3) 
      Installing sprockets (2.1.3) 
      Installing actionpack (3.2.8) 
      Installing mime-types (1.19) 
      Installing polyglot (0.3.3) 
      Installing treetop (1.4.12) 
      Installing mail (2.4.4) 
      Installing actionmailer (3.2.8) 
      Installing arel (3.0.2) 
      Installing tzinfo (0.3.35) 
      Installing activerecord (3.2.8) 
      Installing activeresource (3.2.8) 
      Using bundler (1.2.1) 
      Installing coffee-script-source (1.4.0) 
      Installing execjs (1.4.0) 
      Installing coffee-script (2.2.0) 
      Installing rack-ssl (1.3.2) 
      Installing json (1.7.5) with native extensions 
      Installing rdoc (3.12) 
      Installing thor (0.16.0) 
      Installing railties (3.2.8) 
      Installing coffee-rails (3.2.2) 
      Installing jquery-rails (2.1.3) 
      Installing rails (3.2.8) 
      Installing sass (3.2.3) 
      Installing sass-rails (3.2.5) 
      Installing sqlite3 (1.3.6) with native extensions 
      Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native ex tension. 
      /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_2pense1pvyqut/vendor/bundle /ruby/1.9.1/gems/sqlite3-1.3.6 
    for inspection. 
      Results logged to /tmp/build_2pense1pvyqut/vendor/bundle/ruby/1.9.1/gems/ 
    sqlite3-1.3.6/ext/sqlite3/gem_make.out 
      An error occurred while installing sqlite3 (1.3.6), and Bundler cannot co ntinue. 
      Make sure that `gem install sqlite3 -v '1.3.6'` succeeds before bundling. 

    ! !  Failed to install gems via Bundler. ! !  Heroku push 
    rejected, failed to compile Ruby/rails app 

== =======================================

mio Gemfile come di seguito:

=============================

gem 'rails', '3.2.8' 

    # Bundle edge Rails instead: 
    # gem 'rails', :git => 'git://github.com/rails/rails.git' 

    group :production do gem 'pg' end 

    group :development, :test do gem 'taps' gem 'rvm' 
     gem 'rspec-rails','2.0.1' gem 'annotate' gem 'faker','0.3.1' gem 'rspec','2.0.1' gem 'webrat','0.7.1' gem 'spork','0.8.4' 
    gem 'factory_girl_rails','1.0' end 

    gem 'rake', '~> 10.0.1' 



    #gem 'yaml_db' 

    # Gems used only for assets and not required 
    # in production environments by default. group :assets do gem 'sass-rails', '~> 3.2.3' gem 'coffee-rails', '~> 3.2.1' 

    # See https://github.com/sstephenson/execjs#readme for more 
    supported runtimes # gem 'therubyracer', :platforms => :ruby 

    gem 'uglifier', '>= 1.0.3' end 

    gem 'jquery-rails' 

    # To use ActiveModel has_secure_password 
    # gem 'bcrypt-ruby', '~> 3.0.0' 

    # To use Jbuilder templates for JSON 
    # gem 'jbuilder' 

    # Use unicorn as the app server 
    # gem 'unicorn' 

    # Deploy with Capistrano 
    # gem 'capistrano' 

    # To use debugger 
    # gem 'debugger' 

=======================================

I provato quasi tutte le soluzioni fornite online, ma ancora senza fortuna. Qualsiasi aiuto sarà molto apprezzato.

risposta

22

Non lo vedo nel tuo codice sopra, ma suppongo che tu abbia il tuo gem 'sqlite3' nella parte superiore del tuo gemfile, quindi viene utilizzato in tutti gli ambienti. Sqlite non è supportato su Heroku quindi è stato tenuto fuori dal gruppo di produzione. Provare quanto segue in modo che sia possibile utilizzare sqlite per sviluppo e test e quindi pg su Heroku.

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

group :production do 
    gem 'pg' 
end 

+3

Grazie Memoht. Alla fine ho capito che è perché ero nel ramo e stavo cercando di spingere il maestro. Sono passato al master e spinto di nuovo, bingo, ha funzionato. Grazie ancora .. –

+1

Stavo avendo un problema simile. E non avevo commesso la rimozione di sqlite3. O_un errore stupido, che documenta per altre persone che leggono questo post. – BananaNeil

5

avuto lo stesso problema. Mi resi conto che non avevo commesso le mie modifiche a Git. Una volta che l'ho eseguito e re-inserito in Heroku, ha funzionato senza problemi.

+0

Lo stesso qui, stava cercando di spingere qualcosa non ancora commesso in Git a Heroku. Commit >> push –

+0

Lo stesso qui, dopo aver modificato il file gem, questo errore si è ancora manifestato, indicando che l'installazione di sqlite non è riuscita. Mi sono poi reso conto che ho solo cambiato il gemfile locale.Dopo il commit del gemfile modificato, il server heroku non tenta nuovamente di installare sqlite – BillOverFlow

1

Di seguito ha lavorato per me sul mio Mac:

group :development, :test do gem 'sqlite3' end group :production do gem 'pg' end

E poi

bundle install

ma che vomitò questo errore:

can't find the 'libpq-fe.h header *** extconf.rb failed ***

risolto questo errore utilizzando Homebrew come spiegato qui - https://stackoverflow.com/a/20482221/2665896

cioè

brew install postgresql 
gem install pg 

Poi commettere il Gemfile e Gemfile.lock al maestro locale.

Quindi git push heroku master ha funzionato come un fascino.

Problemi correlati