Can't push app Heroku - Failed to install gems via Bundler
Asked Answered
A

7

12

This is how looks my Gemfile:

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'

and this is the output from pushing the app to 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'

What is wrong? I have the same set up in my else app and it works fine... I will much grateful for every help, struggling with this problem whole afternoon...

EDIT: Also I tried remove repository and create a new one, but still the same.

Aerogram answered 25/1, 2012 at 19:50 Comment(5)
It looks like it's trying to install the SQLite gem. Are you sure it's commented out in the Gemfile that you're pushing to Heroku?Siphonostele
Did you recreate your Gemfile.lock file after commenting it out?Siphonostele
@Siphonostele no, how can I do it? (never do it before)Aerogram
Maybe stupid, but: try to remove commented line with "sqlite3". I understand that it should not have any effect, but who knows :)Waterage
@volodymyr also tried... no effectAerogram
A
9

So, after a little talk with Heroku suporters, the "problem" was in taps gem - sqlite3 has an association to it. The working solution is:

group :development do
  gem 'taps'
  gem 'rvm'
end
Aerogram answered 26/1, 2012 at 9:48 Comment(0)
F
27

Just put your sqlite3 under text/development group in Gemfile, adding thin and pg in production gemfile group also:

  1. edit the Gemfile like following:

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

  3. run bundle install --without production
  4. git add .
  5. git commit -am "bundle updating sqlite3"
  6. git push heroku +master
Fubsy answered 25/1, 2012 at 23:38 Comment(2)
I tried now both variants that you writing... and still the same.Aerogram
same here. removing the Gemfile.lock is the key hereGreenish
A
9

So, after a little talk with Heroku suporters, the "problem" was in taps gem - sqlite3 has an association to it. The working solution is:

group :development do
  gem 'taps'
  gem 'rvm'
end
Aerogram answered 26/1, 2012 at 9:48 Comment(0)
K
5

If you change Gemfile DO NOT forget

git add .
git commint -m"ufff"

then

git push heroku master
Karly answered 22/11, 2012 at 11:53 Comment(0)
W
2

Have you added Gemfile to working copy and committed it to your local repository? Maybe you are pushing old version of Gemfile and Gemfile.lock?

Waterage answered 25/1, 2012 at 20:12 Comment(3)
I tried to remove now a Gemfile.lock, ran bundle install, the Gemfile.lock was created and when I tried to push app to Heroku, again the same error...Aerogram
Have you executed "git add Gemfile" and "git commit" ?Waterage
yes, git add Gemfile -> git commit -> # On branch master nothing to commit (working directory clean)Aerogram
M
2

In Gemfile replace 'gem sqlite3' with the next:

group :development do
gem 'sqlite3'
end
gem 'pg'
Menton answered 26/7, 2012 at 11:38 Comment(0)
A
1

You need to do bundle at the command line in your project folder.

This will update your Gemfile.lock file - you need to commit both this and Gemfile and then repush to Heroku.

Annabell answered 25/1, 2012 at 20:7 Comment(3)
I tried it already and still the same error. I tried bundle, bundle install, bundle update, but still the same error when I try to deploy the app to HerokuAerogram
double check the output of your git status to make sure you don't have files that you haven't added and committed to git before you push to Heroku.Annabell
when I type git status, so the result is # On branch master nothing to commit (working directory clean) - nothing to read from thisAerogram
K
0

I had a slightly unique situation with the gem 'mailcatcher'.

I had the gem installed for all environments, but i realized that one of its dependencies is sqlite3. I moved the mailcatcher gem to the development group and it fixed my problem.

Kacykaczer answered 22/10, 2015 at 20:2 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.