1

I've made sure that all the files are in the root of the repository as recommended in this discussion. However, as I follow the instructions in this section of the book, I can't get through the section without the problems. What do you think is happening with my system that's causing the error? I have no clue at the moment of what the problem means despite reading the following in the log. Thanks in advance for your help!

stanley@ubuntu:~/rails_sample/first_app$ git push heroku master
Warning: Permanently added the RSA host key for IP address '50.19.85.156' to the list of known hosts.
Counting objects: 96, done.
Compressing objects: 100% (79/79), done.
Writing objects: 100% (96/96), 28.81 KiB, done.
Total 96 (delta 22), reused 0 (delta 0)

-----> Heroku receiving push
-----> Ruby/Rails app detected
-----> Installing dependencies using Bundler version 1.2.0.pre
       Running: bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment
       Fetching gem metadata from https://rubygems.org/.......
       Installing rake (0.9.2.2)
       Installing i18n (0.6.0)
       Installing multi_json (1.3.5)
       Installing activesupport (3.2.3)
       Installing builder (3.0.0)
       Installing activemodel (3.2.3)
       Installing erubis (2.7.0)
       Installing journey (1.0.3)
       Installing rack (1.4.1)
       Installing rack-cache (1.2)
       Installing rack-test (0.6.1)
       Installing hike (1.2.1)
       Installing tilt (1.3.3)
       Installing sprockets (2.1.3)
       Installing actionpack (3.2.3)
       Installing mime-types (1.18)
       Installing polyglot (0.3.3)
       Installing treetop (1.4.10)
       Installing mail (2.4.4)
       Installing actionmailer (3.2.3)
       Installing arel (3.0.2)
       Installing tzinfo (0.3.33)
       Installing activerecord (3.2.3)
       Installing activeresource (3.2.3)
       Installing coffee-script-source (1.3.3)
       Installing execjs (1.3.2)
       Installing coffee-script (2.2.0)
       Installing rack-ssl (1.3.2)
       Installing json (1.7.3) with native extensions
       Installing rdoc (3.12)
       Installing thor (0.14.6)
       Installing railties (3.2.3)
       Installing coffee-rails (3.2.2)
       Installing jquery-rails (2.0.2)
       Using bundler (1.2.0.pre)
       Installing rails (3.2.3)
       Installing sass (3.1.18)
       Installing sass-rails (3.2.5)
       Installing sqlite3 (1.3.6) with native extensions
       Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
       /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_3tplrxvj7qa81/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.6 for inspection.
       Results logged to /tmp/build_3tplrxvj7qa81/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 continue.
       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

To git@heroku.com:growing-mountain-2788.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:growing-mountain-2788.git'

------Gemfile------------------------

As requested, here's the auto-generated gemfile:

source 'https://rubygems.org'

gem 'rails', '3.2.3'

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

gem 'sqlite3'

gem 'json'

# 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', :platform => :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 'ruby-debug'
Community
  • 1
  • 1
stanigator
  • 10,768
  • 34
  • 94
  • 129

5 Answers5

2

The problem is missing headers files to sqlite3 on the server and gem cannot build the extension. Do you need sqlite? Try remove it from Gemfile or if this is possible install sqlite3-dev package on the server.

Zefiryn
  • 2,240
  • 2
  • 20
  • 30
2

Heroku tries to use postgres automatically. (good thing, as sqlite is NOT suitable for prosuction) The sqlite scripts are compatible with postgres, so no change is required.

Do this in your Gemfile :

gem "sqlite3", :groups => [:development, :test]
gem "pg", groups => [:production]

Be aware that there might be behavior differences between sqlite and postgres. It is strongly recommended to use postgres on your development environment

see https://devcenter.heroku.com/articles/how-do-i-use-sqlite3-for-development

Stéphane
  • 11,755
  • 7
  • 49
  • 63
1

I had this same problem, the problem went away when I completed my push to GitHub.

I needed to complete this step:

$ git remote add origin ...
$ git push -u origin master

After that it pushed to heroku without any problems.

nhahtdh
  • 55,989
  • 15
  • 126
  • 162
ohturbo
  • 11
  • 1
0

Replace the SQLite gem with postgres's pg gem. Heroku uses Postgres and you don't need SQLite in production mode anyway.

Replace sqlite in your Gemfile with 'gem pg'

Aditya Sanghi
  • 13,370
  • 2
  • 44
  • 50
0

Heroku use PostgreSQL, not SQLite. Follow this instructions to solve your problem https://devcenter.heroku.com/articles/rails3

kasper375
  • 171
  • 1
  • 5