I'm trying to push my Rails project onto Heroku. It gives some error about fcgi. On my machine, I'm able to install fcgi just fine. I can do gem install fcgi -v '0.8.8' on my machine without error.
-----> Ruby/Rails app detected
-----> Using Ruby version: ruby-2.0.0
-----> Installing dependencies using Bundler version 1.3.2
Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment
Fetching gem metadata from http://rubygems.org/.........
Fetching gem metadata from http://rubygems.org/..
Installing rake (0.9.2.2)
Installing abstract (1.0.0)
Installing activesupport (3.0.11)
Installing builder (2.1.2)
Installing i18n (0.5.0)
Installing activemodel (3.0.11)
Installing erubis (2.6.6)
Installing rack (1.4.0)
Installing rack-mount (0.7.1)
Installing rack-test (0.6.1)
Installing tzinfo (0.3.33)
Installing actionpack (3.0.11)
Installing mime-types (1.16)
Installing polyglot (0.3.1)
Installing treetop (1.4.10)
Installing mail (2.4.4)
Installing actionmailer (3.0.11)
Installing arel (2.0.9)
Installing activerecord (3.0.11)
Installing activeresource (3.0.11)
Installing bigdecimal (1.1.0)
Installing fcgi (0.8.8)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/tmp/build_ljhotq40guh7/vendor/ruby-2.0.0/bin/ruby extconf.rb
checking for fcgiapp.h... no
checking for fastcgi/fcgiapp.h... no
*** 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=/tmp/build_ljhotq40guh7/vendor/ruby-2.0.0/bin/ruby
--with-fcgi-dir
--without-fcgi-dir
--with-fcgi-include
--without-fcgi-include=${fcgi-dir}/include
--with-fcgi-lib
--without-fcgi-lib=${fcgi-dir}/
Gem files will remain installed in /tmp/build_ljhotq40guh7/vendor/bundle/ruby/2.0.0/gems/fcgi-0.8.8 for inspection.
Results logged to /tmp/build_ljhotq40guh7/vendor/bundle/ruby/2.0.0/gems/fcgi-0.8.8/ext/fcgi/gem_make.out
An error occurred while installing fcgi (0.8.8), and Bundler cannot continue.
Make sure that `gem install fcgi -v '0.8.8'` succeeds before bundling.
Gemfile:
source 'http://rubygems.org'
gem 'rails', '3.0.11'
#gem 'mysql2', '~> 0.2.17'
group :development, :test do
gem 'sqlite3'
end
group :production do
gem 'pg'
end
# Use unicorn as the web server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+)
# gem 'ruby-debug'
# gem 'ruby-debug19', :require => 'ruby-debug'
# Bundle the extra gems:
# gem 'bj'
# gem 'nokogiri'
# gem 'sqlite3-ruby', :require => 'sqlite3'
# gem 'aws-s3', :require => 'aws/s3'
# Bundle gems for the local environment. Make sure to
# put test-only gems in this group so their generators
# and rake tasks are available in development mode:
# group :development, :test do
# gem 'webrat'
# end
gem 'fcgi'
gem 'minitest'
It looks like you're using a really old version of Rails there.
Heroku recently changed all new applications to default to using Ruby 2.0.0 - I'd suggest putting
ruby '1.9.3'
in your Gemfile under the source line to lock your application to Ruby 1.9.3 as you may be experiencing issues with the latest version of Ruby and old Rails/gems etc.
Related
I am trying to deploy a rails app to heroku and I am getting the following error.
Detected sqlite3 gem which is not supported on Heroku
I have removed any reference to sqlite3 from my project and converted it to use 'pg', updated the Gemfile.lock and committed it but the error persists.
Here is my gemfile
source 'https://rubygems.org'
group :test, :development do
#testing
gem 'rspec-rails', '~ 3.0'
gem 'factory_girl_rails', '~ 4.0'
gem 'guard-rspec', require: false
gem 'faker'
gem 'database_cleaner'
end
# Use postgres as the database for Active Record
gem 'pg'
gem 'rails_12factor'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.4'
# Use SCSS for stylesheets
gem 'sass-rails', '~ 4.0.3'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~ 4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~ 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~ 0.4.0', group: :doc
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
#gem 'spring', group: :development
# Use ActiveModel has_secure_password
#gem 'bcrypt', '~ 3.1.7'
# Use unicorn as the app server
# gem 'unicorn'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
# Use debugger
# gem 'debugger', group: [:development, :test]
ruby '2.0.0'
Here is my database.yml
development:
adapter: postgresql
encoding: SQL_ASCII
database: rock_development
pool: 5
test:
adapter: postgresql
encoding: SQL_ASCII
database: rock_test
pool: 5
Here is my heroku log
ruby app detected
-----> Compiling Ruby/Rails
-----> Using Ruby version: ruby-2.0.0
-----> Installing dependencies using 1.6.3
Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
Fetching gem metadata from https://rubygems.org/.........
Installing i18n 0.6.11
Installing rake 10.3.2
Installing minitest 5.4.2
Installing thread_safe 0.3.4
Installing builder 3.2.2
Installing erubis 2.7.0
Installing rack 1.5.2
Installing json 1.8.1
Installing mime-types 1.25.1
Installing polyglot 0.3.5
Installing arel 5.0.1.20140414130214
Installing coffee-script-source 1.8.0
Installing execjs 2.2.2
Installing thor 0.19.1
Installing hike 1.2.3
Using bundler 1.6.3
Installing multi_json 1.10.1
Installing tilt 1.4.1
Installing sass 3.2.19
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/tmp/build_29a41245e46646e56496208f95c41c97/vendor/ruby-2.0.0/bin/ruby extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal',
'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
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=/tmp/build_29a41245e46646e56496208f95c41c97/vendor/ruby-2.0.0/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}/
--enable-local
--disable-local
Gem files will remain installed in /tmp/build_29a41245e46646e56496208f95c41c97/vendor/bundle/ruby/2.0.0/gems/sqlite3-1.3.9 for inspection.
Results logged to /tmp/build_29a41245e46646e56496208f95c41c97/vendor/bundle/ruby/2.0.0/gems/sqlite3-1.3.9/ext/sqlite3/gem_make.out
Installing tzinfo 1.2.2
Installing bcrypt 3.1.7
An error occurred while installing sqlite3 (1.3.9), and Bundler cannot continue.
Make sure that `gem install sqlite3 -v '1.3.9'` succeeds before bundling.
Bundler Output: Fetching gem metadata from https://rubygems.org/.........
Installing i18n 0.6.11
Installing rake 10.3.2
Installing minitest 5.4.2
Installing thread_safe 0.3.4
Installing builder 3.2.2
Installing erubis 2.7.0
Installing rack 1.5.2
Installing json 1.8.1
Installing mime-types 1.25.1
Installing polyglot 0.3.5
Installing arel 5.0.1.20140414130214
Installing coffee-script-source 1.8.0
Installing execjs 2.2.2
Installing thor 0.19.1
Installing hike 1.2.3
Using bundler 1.6.3
Installing multi_json 1.10.1
Installing tilt 1.4.1
Installing sass 3.2.19
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/tmp/build_29a41245e46646e56496208f95c41c97/vendor/ruby-2.0.0/bin/ruby extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal',
'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
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=/tmp/build_29a41245e46646e56496208f95c41c97/vendor/ruby-2.0.0/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}/
--enable-local
--disable-local
Gem files will remain installed in /tmp/build_29a41245e46646e56496208f95c41c97/vendor/bundle/ruby/2.0.0/gems/sqlite3-1.3.9 for inspection.
Results logged to /tmp/build_29a41245e46646e56496208f95c41c97/vendor/bundle/ruby/2.0.0/gems/sqlite3-1.3.9/ext/sqlite3/gem_make.out
Installing tzinfo 1.2.2
Installing bcrypt 3.1.7
An error occurred while installing sqlite3 (1.3.9), and Bundler cannot continue.
Make sure that `gem install sqlite3 -v '1.3.9'` succeeds before bundling.
!
! Failed to install gems via Bundler.
!
! Detected sqlite3 gem which is not supported on Heroku.
! https://devcenter.heroku.com/articles/sqlite3
!
! Push rejected, failed to compile Ruby app
Problem solved. It was actually a problem with how I was using git. I had created a new branch to make the changes from sqlite to ppsql and I was trying to push to heroku from that branch. Turns out when you say "git push heroku master" it isn't pushing from your current branch, it is pushing from the master branch. Which in my case was still configured to use sqlite.
To solve this problem first merge with your master branch before pushing to heroku.
It may be occur due to when you installed sqlite3 gem it's version details would be stored in Gemfile.lock so remove this file, don't bother of it as it will be again generated without having any source of sqlite3 gem when you run bundle install then after try to deploy on heroku
This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center.
Closed 9 years ago.
I'm having trouble pushing to Heroku. Have looked around for quite a bit but haven't found a working solution. Seems like there are some missing libraries, the gemfile has sqlite under dev and test and pg under production. Here are the results of the push and the dependencies of sqlite:
Fetching: sqlite3-1.3.7.gem (100%)
Building native extensions. This could take a while...
Fetching: sqlite3-ruby-1.3.3.gem (100%)
#######################################################
Hello! The sqlite3-ruby gem has changed it's name to just sqlite3. Rather than
installing `sqlite3-ruby`, you should install `sqlite3`. Please update your
dependencies accordingly.
Thanks from the Ruby sqlite3 team!
<3 <3 <3 <3
#######################################################
Successfully installed sqlite3-1.3.7
Successfully installed sqlite3-ruby-1.3.3
2 gems installed
user-macbook:sample_app user$ git push heroku master
Counting objects: 146, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (108/108), done.
Writing objects: 100% (117/117), 17.84 KiB, done.
Total 117 (delta 50), reused 0 (delta 0)
-----> Removing .DS_Store files
-----> Ruby/Rails app detected
-----> Installing dependencies using Bundler version 1.3.0.pre.5
Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment
Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/..
Using rake (10.0.3)
Using i18n (0.6.1)
Using multi_json (1.5.0)
Using activesupport (3.2.3)
Using builder (3.0.4)
Using activemodel (3.2.3)
Using erubis (2.7.0)
Using journey (1.0.4)
Using rack (1.4.1)
Using rack-cache (1.2)
Using rack-test (0.6.2)
Using hike (1.2.1)
Using tilt (1.3.3)
Using sprockets (2.1.3)
Using actionpack (3.2.3)
Using mime-types (1.19)
Using polyglot (0.3.3)
Using treetop (1.4.12)
Using mail (2.4.4)
Using actionmailer (3.2.3)
Using arel (3.0.2)
Using tzinfo (0.3.35)
Using activerecord (3.2.3)
Using activeresource (3.2.3)
Installing annotate (2.5.0)
Installing bcrypt-ruby (3.0.1)
Installing bootstrap-sass (2.0.0)
Installing coderay (1.0.8)
Using coffee-script-source (1.4.0)
Using execjs (1.4.0)
Using coffee-script (2.2.0)
Using rack-ssl (1.3.2)
Using json (1.7.5)
Using rdoc (3.12)
Using thor (0.14.6)
Using railties (3.2.3)
Using coffee-rails (3.2.2)
Using diff-lcs (1.1.3)
Installing factory_girl (2.3.2)
Installing factory_girl_rails (1.4.0)
Installing listen (0.6.0)
Installing lumberjack (1.0.2)
Installing method_source (0.8.1)
Installing slop (3.3.3)
Installing pry (0.9.10)
Installing guard (1.6.0)
Installing guard-rspec (0.5.5)
Using jquery-rails (2.0.1)
Using pg (0.12.2)
Using bundler (1.3.0.pre.5)
Using rails (3.2.3)
Using rspec-core (2.9.0)
Using rspec-expectations (2.9.1)
Using rspec-mocks (2.9.0)
Using rspec (2.9.0)
Using rspec-rails (2.9.0)
Using sass (3.2.4)
Using sass-rails (3.2.5)
Installing sqlite3 (1.3.6)
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_3vt0kpt7q53ss/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.6 for inspection.
Results logged to /tmp/build_3vt0kpt7q53ss/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:still-woodland-3538.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git#heroku.com:still-woodland-3538.git'
sqlite dependencies:
Gem sqlite3-1.3.5
hoe (~> 2.12, development)
mini_portile (~> 0.2.2, development)
rake-compiler (~> 0.7.0, development)
rdoc (~> 3.10, development)
Gem sqlite3-1.3.6
hoe (~> 3.0, development)
mini_portile (~> 0.2.2, development)
rake-compiler (~> 0.7.0, development)
rdoc (~> 3.10, development)
Gem sqlite3-1.3.7
hoe (~> 3.4, development)
mini_portile (~> 0.2.2, development)
rake-compiler (~> 0.8.2, development)
rdoc (~> 3.10, development)
Gemfile:
source 'https://rubygems.org'
gem 'rails', '3.2.3'
gem 'bootstrap-sass', '2.0.0'
gem 'bcrypt-ruby', '3.0.1'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
group :devlopment, :test do
gem 'rspec-rails', '2.9.0'
gem 'guard-rspec', '0.5.5'
gem 'sqlite3'
gem 'annotate'
gem 'factory_girl_rails', '1.4.0'
end
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 3.2.4'
gem 'coffee-rails', '~> 3.2.2'
gem 'uglifier', '1.2.3'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platform => :ruby
end
gem 'jquery-rails', '2.0.1'
# 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-debug19', :require => 'ruby-debug'
group :test do
gem 'capybara', '1.1.2'
gem 'rspec-rails', '2.9.0'
gem 'rb-fsevent'
gem 'growl', '1.0.3'
gem 'spork', '0.9.0'
end
group :production do
gem 'pg'
end
It seems the issue is that you have a typo: group :devlopment, :test should be group :development, :test. You can see that all the gems you're using under the "devlopment" group have been installed on Heroku.
See if correcting the spelling will ensure that there's no attempt to use the sqlite3 gem (or any of the other gems in that group) in production.
Heroku doesn't support sqlite3. Instead, you should use gem pg instead.
group :production do
gem 'pg'
end
Similar to Deploying RoR app to Heroku with Sqlite3 fails
This question already has answers here:
Deploying RoR app to Heroku with SQLite 3 fails
(7 answers)
Closed 7 years ago.
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.
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
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.
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.
Results logged to /tmp/build_207lfem2op1z3/vendor/bundle/ruby/1.9.1/gems/linecache19-0.5.12/ext/trace_nums/gem_make.out
An error occurred while installing linecache19 (0.5.12), and Bundler cannot continue.
Make sure that `gem install linecache19 -v '0.5.12'` succeeds before bundling.
!
! Failed to install gems via Bundler.
!
! Heroku push rejected, failed to compile Ruby/rails app
To git#heroku.com:intense-garden-9145.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git#heroku.com:intense-garden-9145.git'
So please help me in solving this Iam new to Heroku and Ruby on rails
I have followed the following steps to update my app
git init
git add.
git commit -m '.'
git push heroku master
And I have got the following run error
saasbook#saasbook:~/hw2_rottenpotatoes$ git push heroku master
Counting objects: 462, done.
Compressing objects: 100% (240/240), done.
Writing objects: 100% (462/462), 76.71 KiB, done.
Total 462 (delta 185), reused 427 (delta 172)
-----> 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/ --deployment
Fetching gem metadata from http://rubygems.org/.........
Fetching gem metadata from http://rubygems.org/..
Installing rake (0.9.2.2)
Installing multi_json (1.0.4)
Installing activesupport (3.1.0)
Installing bcrypt-ruby (3.0.1) with native extensions
Installing builder (3.0.0)
Installing i18n (0.6.0)
Installing activemodel (3.1.0)
Installing erubis (2.7.0)
Installing rack (1.3.6)
Installing rack-cache (1.0.3)
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.0.3)
Installing actionpack (3.1.0)
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.0)
Installing arel (2.2.1)
Installing tzinfo (0.3.31)
Installing activerecord (3.1.0)
Installing activeresource (3.1.0)
Installing archive-tar-minitar (0.5.2)
Installing coffee-script-source (1.2.0)
Installing execjs (1.2.13)
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.0)
Installing coffee-rails (3.1.1)
Installing columnize (0.3.6)
Installing haml (3.1.4)
Installing jquery-rails (1.0.19)
Installing libv8 (3.3.10.4)
Installing ruby_core_source (0.1.5)
Installing linecache19 (0.5.12) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/usr/local/bin/ruby extconf.rb
checking for vm_core.h... no
checking for vm_core.h... no
*** 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-ruby-dir
--without-ruby-dir
--with-ruby-include
--without-ruby-include=${ruby-dir}/include
--with-ruby-lib
--without-ruby-lib=${ruby-dir}/lib
/usr/local/lib/ruby/1.9.1/fileutils.rb:243:in `mkdir': Read-only file system - /usr/local/include/ruby-1.9.1/ruby-1.9.2-p290 (Errno::EROFS)
from /usr/local/lib/ruby/1.9.1/fileutils.rb:243:in `fu_mkdir'
from /usr/local/lib/ruby/1.9.1/fileutils.rb:217:in `block (2 levels) in mkdir_p'
from /usr/local/lib/ruby/1.9.1/fileutils.rb:215:in `reverse_each'
from /usr/local/lib/ruby/1.9.1/fileutils.rb:215:in `block in mkdir_p'
from /usr/local/lib/ruby/1.9.1/fileutils.rb:201:in `each'
from /usr/local/lib/ruby/1.9.1/fileutils.rb:201:in `mkdir_p'
from /tmp/build_lt34ecl4ewpm/vendor/bundle/ruby/1.9.1/gems/ruby_core_source-0.1.5/lib/ruby_core_source.rb:59:in `block in create_makefile_with_core'
from /usr/local/lib/ruby/1.9.1/tempfile.rb:320:in `open'
from /tmp/build_lt34ecl4ewpm/vendor/bundle/ruby/1.9.1/gems/ruby_core_source-0.1.5/lib/ruby_core_source.rb:51:in `create_makefile_with_core'
from extconf.rb:19:in `<main>'
Requesting http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz
Downloading http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz
Gem files will remain installed in /tmp/build_lt34ecl4ewpm/vendor/bundle/ruby/1.9.1/gems/linecache19-0.5.12 for inspection.
Results logged to /tmp/build_lt34ecl4ewpm/vendor/bundle/ruby/1.9.1/gems/linecache19-0.5.12/ext/trace_nums/gem_make.out
An error occurred while installing linecache19 (0.5.12), and Bundler cannot continue.
Make sure that `gem install linecache19 -v '0.5.12'` succeeds before bundling.
!
! Failed to install gems via Bundler.
!
! Heroku push rejected, failed to compile Ruby/rails app
To git#heroku.com:intense-garden-9145.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git#heroku.com:intense-garden-9145.git'
Below Iam posting my Gem file
source 'http://rubygems.org'
gem 'rails', '3.1.0'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'sqlite3'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'therubyracer'
gem 'sass-rails', " ~> 3.1.0"
gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
end
gem 'jquery-rails'
# Use unicorn as the web server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
gem 'ruby-debug19', :require => 'ruby-debug'
gem 'haml'
An error occurred while installing linecache19 (0.5.12), and Bundler cannot continue.
Typically you will only have ruby-debug gem in use in development, not in production. Make sure ruby-debug is in the :development or :test group in your Gemfile.
group :development, :test do
gem 'ruby-debug19', :require => 'ruby-debug'
end
Then try the following
Run bundle again
Commit your Gemfile and Gemfile.lock
Push to Heroku again
linecache19 is installed as a dependency of ruby-debug19, which you don't want to have in production anyway.
In your Gemfile, replace the line that says
gem 'ruby-debug19', :require => 'ruby-debug'
with this
group :development, :test do
gem 'ruby-debug19', require: 'ruby-debug'
end
which will mean that the debugger is only loaded in the development and test environments.
You're also going to run into trouble with sqlite3 which is not supported on Heroku either... see this question
I've installed the pg gem as shown, but...
Building native extensions. This could take a while...
Successfully installed pg-0.11.0
ERROR: Could not find a valid gem '—' (>= 0) in any repository
ERROR: Could not find a valid gem '–with-pg-config=/usr/local/pg/bin/pg_config' (>= 0) in any repository
1 gem installed
Installing ri documentation for pg-0.11.0...
Installing RDoc documentation for pg-0.11.0...
Something strange happens when I bundle install and it won't completely install the pg gem:
Fetching source index for http://rubygems.org/
Using rake (0.9.2)
Using abstract (1.0.0)
Using activesupport (3.0.10)
Using builder (2.1.2)
Using i18n (0.5.0)
Using activemodel (3.0.10)
Using erubis (2.6.6)
Using rack (1.2.3)
Using rack-mount (0.6.14)
Using rack-test (0.5.7)
Using tzinfo (0.3.29)
Using actionpack (3.0.10)
Using mime-types (1.16)
Using polyglot (0.3.2)
Using treetop (1.4.10)
Using mail (2.2.19)
Using actionmailer (3.0.10)
Using arel (2.0.10)
Using activerecord (3.0.10)
Using activeresource (3.0.10)
Using annotate (2.4.0)
Using bundler (1.0.18)
Using diff-lcs (1.1.2)
Using factory_girl (1.3.3)
Using rdoc (3.9.3)
Using thor (0.14.6)
Using railties (3.0.10)
Using rails (3.0.10)
Using factory_girl_rails (1.0)
Using faker (0.3.1)
Using gravatar_image_tag (1.0.0.pre2)
Using nokogiri (1.5.0)
Installing pg (0.11.0) with native extensions /Users/******/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:552:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)
Then I get the lines that tell me I may lack necessary libraries or headers:
*** 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=/Users/TonyNg/.rvm/rubies/ruby-1.9.2-p180/bin/ruby
--with-pg
--without-pg
--with-pg-dir
--without-pg-dir
--with-pg-include
--without-pg-include=${pg-dir}/include
--with-pg-lib
--without-pg-lib=${pg-dir}/lib
--with-pg-config
extconf.rb:24:in ``': No such file or directory - /users/****/
Here is my gem file:
source 'http://rubygems.org'
gem 'rails', '3.0.10'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'pg'
gem 'gravatar_image_tag', '1.0.0.pre2'
gem 'will_paginate', '3.0.pre2'
group :development do
gem 'rspec-rails', '2.6.1'
gem 'annotate', '2.4.0'
gem 'faker', '0.3.1'
end
group :test do
gem 'rspec-rails', '2.6.1'
gem 'webrat', '0.7.1'
gem 'spork', '0.9.0.rc8'
gem 'factory_girl_rails', '1.0'
end
# Use unicorn as the web server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+)
# gem 'ruby-debug'
# gem 'ruby-debug19', :require => 'ruby-debug'
# Bundle the extra gems:
# gem 'bj'
# gem 'nokogiri'
# gem 'sqlite3-ruby', :require => 'sqlite3'
# gem 'aws-s3', :require => 'aws/s3'
# Bundle gems for the local environment. Make sure to
# put test-only gems in this group so their generators
# and rake tasks are available in development mode:
# group :development, :test do
# gem 'webrat'
# end
How do I solve this issue? Thanks in advance.
EDIT
Answer:The trick was to install the pg gem under the correct pathway to pg_config whereas before it wasn't fully installed. I ran 'gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config ' for the path I had put down under my last comment. I just had to locate my pg_config file and run gem install under that.
You need to install libpq-dev before
The trick was to install the pg gem under the correct pathway to pg_config whereas before it wasn't fully installed.
I ran gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config after locating the pg_config exec file. I just had to locate my pg_config file and run gem install under that pathway.
in ubuntu 18.04, need to ran sudo apt install libpq-dev
For Windows and as-of version 0.13.0 of the pg gem, you should be able to install it using something like the following:
subst X: "C:\Program Files\PostgreSQL\9.0"
gem install pg -- --with-pg=X:
subst X: /D
Then you can successfully run bundle install and see the following line in the output:
Using pg (0.13.0)
instead of the errors.
[This is the same answer as this answer to the related question Can't install pg gem on Windows.]
On ubuntu 18.04 run the following command
sudo apt update
sudo apt install libpq-dev
For iOS :
brew install libpq
Reference: https://formulae.brew.sh/formula/libpq