Errors of pushing rails app to Heroku error occurred while installing sqlite3, and Bundler cannot continue [duplicate]

匿名 (未验证) 提交于 2019-12-03 02:24:01

问题:

This question already has an answer here:

I was trying to push my rails app to heroku and received errors as below:

-

 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 

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

My GemFile as below:

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

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 tried almost all the solutions provided online, but still no luck. Any help will be greatly appreciated.

回答1:

I don't see it in your code above, but guessing you probably have your gem 'sqlite3' at the top of your gemfile, so it is being used in all environments. Sqlite is not supported on Heroku so it has be kept out of the production group. Try the following so that you can use sqlite for development and testing and then pg on Heroku.

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



回答2:

Had the same issue. Realized that I hadn't committed my changes to Git. Once I committed it and re-pushed it to Heroku, it worked without issue.



回答3:

The following worked for me on my Mac:

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

And then

bundle install

but that threw up this error:

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

Solved this error using Homebrew as explained here - https://stackoverflow.com/a/20482221/2665896

i.e.

brew install postgresql gem install pg 

Then commit the Gemfile and Gemfile.lock to the local master.

Then git push heroku master worked like a charm.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!