I ran into a bit of problem moving an app to a test Heroku host – I needed to install PostgreSQL. I added the following to my Gemfile:
#Gemfile #gem 'sqlite3' gem 'pg'
I then tried to run bundle install:
root@chris-VirtualBox:~/site# bundle install
However I received the following error:
root@chris-VirtualBox:~/site# bundle install Fetching source index for http://rubygems.org/ Using rake (0.9.2) Using multi_json (1.0.3) Using activesupport (3.1.1) Using builder (3.0.0) Using i18n (0.6.0) Using activemodel (3.1.1) Using erubis (2.7.0) Using rack (1.3.4) Using rack-cache (1.1) Using rack-mount (0.8.3) Using rack-test (0.6.1) Using hike (1.2.1) Using tilt (1.3.3) Using sprockets (2.0.2) Using actionpack (3.1.1) Using mime-types (1.16) Using polyglot (0.3.2) Using treetop (1.4.10) Using mail (2.3.0) Using actionmailer (3.1.1) Using arel (2.2.1) Using tzinfo (0.3.30) Using activerecord (3.1.1) Using activeresource (3.1.1) Using bundler (1.0.21) Using rack-ssl (1.3.2) Using json (1.6.1) Using rdoc (3.10) Using thor (0.14.6) Using railties (3.1.1) Using rails (3.1.1) Using acts-as-taggable-on (2.1.1) Using awesome_nested_set (2.0.2) Using bcrypt-ruby (3.0.1) Using carrierwave (0.5.7) Using cocaine (0.2.0) Using coffee-script-source (1.1.2) Using execjs (1.2.9) Using coffee-script (2.2.0) Using coffee-rails (3.1.1) Using orm_adapter (0.0.5) Using warden (1.0.6) Using devise (1.4.8) Using escape (0.0.4) Using geocoder (1.0.5) from git://github.com/alexreisner/geocoder.git (at no_grouping) Using jquery-rails (1.0.16) Using libv8 (3.3.10.2) Using nokogiri (1.5.0) Using paperclip (2.4.5) Installing pg (0.12.2) with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /usr/bin/ruby1.8 extconf.rb checking for pg_config... no No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config checking for libpq-fe.h... no Can't find the 'libpq-fe.h header *** 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/bin/ruby1.8 --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 --without-pg-config --with-pg_config --without-pg_config Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/pg-0.12.2 for inspection. Results logged to /usr/lib/ruby/gems/1.8/gems/pg-0.12.2/ext/gem_make.out An error occured while installing pg (0.12.2), and Bundler cannot continue. Make sure that `gem install pg -v '0.12.2'` succeeds before bundling.
It turned out that because I was on Ubuntu I needed to install the libpq-dev package:
root@chris-VirtualBox:~/site# apt-get install libpq-dev Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: linux-headers-2.6.38-8 linux-headers-2.6.38-8-generic Use 'apt-get autoremove' to remove them. The following extra packages will be installed: comerr-dev krb5-multidev libgssapi-krb5-2 libgssrpc4 libk5crypto3 libkadm5clnt-mit7 libkadm5srv-mit7 libkdb5-4 libkrb5-3 libkrb5-dev libkrb5support0 libpq5 libssl-dev Suggested packages: krb5-doc krb5-user postgresql-doc-8.4 The following NEW packages will be installed: comerr-dev krb5-multidev libgssrpc4 libkadm5clnt-mit7 libkadm5srv-mit7 libkdb5-4 libkrb5-dev libpq-dev libpq5 libssl-dev The following packages will be upgraded: libgssapi-krb5-2 libk5crypto3 libkrb5-3 libkrb5support0 4 upgraded, 10 newly installed, 0 to remove and 106 not upgraded. Need to get 3,142 kB of archives. After this operation, 8,520 kB of additional disk space will be used. Do you want to continue [Y/n]? y Get:1 http://au.archive.ubuntu.com/ubuntu/ natty-updates/main libk5crypto3 i386 1.8.3+dfsg-5ubuntu2.2 [76.7 kB] Get:2 http://au.archive.ubuntu.com/ubuntu/ natty-updates/main libgssapi-krb5-2 i386 1.8.3+dfsg-5ubuntu2.2 [100 kB] Get:3 http://au.archive.ubuntu.com/ubuntu/ natty-updates/main libkrb5-3 i386 1.8.3+dfsg-5ubuntu2.2 [327 kB] Get:4 http://au.archive.ubuntu.com/ubuntu/ natty-updates/main libkrb5support0 i386 1.8.3+dfsg-5ubuntu2.2 [22.2 kB] Get:5 http://au.archive.ubuntu.com/ubuntu/ natty-updates/main libgssrpc4 i386 1.8.3+dfsg-5ubuntu2.2 [54.6 kB] Get:6 http://au.archive.ubuntu.com/ubuntu/ natty-updates/main libkadm5clnt-mit7 i386 1.8.3+dfsg-5ubuntu2.2 [38.7 kB] Get:7 http://au.archive.ubuntu.com/ubuntu/ natty-updates/main libkdb5-4 i386 1.8.3+dfsg-5ubuntu2.2 [38.1 kB] Get:8 http://au.archive.ubuntu.com/ubuntu/ natty-updates/main libkadm5srv-mit7 i386 1.8.3+dfsg-5ubuntu2.2 [51.6 kB] Get:9 http://au.archive.ubuntu.com/ubuntu/ natty/main comerr-dev i386 2.1-1.41.14-1ubuntu3 [41.5 kB] Get:10 http://au.archive.ubuntu.com/ubuntu/ natty-updates/main krb5-multidev i386 1.8.3+dfsg-5ubuntu2.2 [82.5 kB] Get:11 http://au.archive.ubuntu.com/ubuntu/ natty-updates/main libpq5 i386 8.4.10-0ubuntu0.11.04.1 [81.6 kB] Get:12 http://au.archive.ubuntu.com/ubuntu/ natty/main libssl-dev i386 0.9.8o-5ubuntu1 [2,019 kB] Get:13 http://au.archive.ubuntu.com/ubuntu/ natty-updates/main libkrb5-dev i386 1.8.3+dfsg-5ubuntu2.2 [15.0 kB] Get:14 http://au.archive.ubuntu.com/ubuntu/ natty-updates/main libpq-dev i386 8.4.10-0ubuntu0.11.04.1 [193 kB] Fetched 3,142 kB in 6s (506 kB/s) (Reading database ... 167506 files and directories currently installed.) Preparing to replace libk5crypto3 1.8.3+dfsg-5ubuntu2.1 (using .../libk5crypto3_1.8.3+dfsg-5ubuntu2.2_i386.deb) ... Unpacking replacement libk5crypto3 ... Preparing to replace libgssapi-krb5-2 1.8.3+dfsg-5ubuntu2.1 (using .../libgssapi-krb5-2_1.8.3+dfsg-5ubuntu2.2_i386.deb) ... Unpacking replacement libgssapi-krb5-2 ... Preparing to replace libkrb5-3 1.8.3+dfsg-5ubuntu2.1 (using .../libkrb5-3_1.8.3+dfsg-5ubuntu2.2_i386.deb) ... Unpacking replacement libkrb5-3 ... Preparing to replace libkrb5support0 1.8.3+dfsg-5ubuntu2.1 (using .../libkrb5support0_1.8.3+dfsg-5ubuntu2.2_i386.deb) ... Unpacking replacement libkrb5support0 ... Selecting previously deselected package libgssrpc4. Unpacking libgssrpc4 (from .../libgssrpc4_1.8.3+dfsg-5ubuntu2.2_i386.deb) ... Selecting previously deselected package libkadm5clnt-mit7. Unpacking libkadm5clnt-mit7 (from .../libkadm5clnt-mit7_1.8.3+dfsg-5ubuntu2.2_i386.deb) ... Selecting previously deselected package libkdb5-4. Unpacking libkdb5-4 (from .../libkdb5-4_1.8.3+dfsg-5ubuntu2.2_i386.deb) ... Selecting previously deselected package libkadm5srv-mit7. Unpacking libkadm5srv-mit7 (from .../libkadm5srv-mit7_1.8.3+dfsg-5ubuntu2.2_i386.deb) ... Selecting previously deselected package comerr-dev. Unpacking comerr-dev (from .../comerr-dev_2.1-1.41.14-1ubuntu3_i386.deb) ... Selecting previously deselected package krb5-multidev. Unpacking krb5-multidev (from .../krb5-multidev_1.8.3+dfsg-5ubuntu2.2_i386.deb) ... Selecting previously deselected package libpq5. Unpacking libpq5 (from .../libpq5_8.4.10-0ubuntu0.11.04.1_i386.deb) ... Selecting previously deselected package libssl-dev. Unpacking libssl-dev (from .../libssl-dev_0.9.8o-5ubuntu1_i386.deb) ... Selecting previously deselected package libkrb5-dev. Unpacking libkrb5-dev (from .../libkrb5-dev_1.8.3+dfsg-5ubuntu2.2_i386.deb) ... Selecting previously deselected package libpq-dev. Unpacking libpq-dev (from .../libpq-dev_8.4.10-0ubuntu0.11.04.1_i386.deb) ... Processing triggers for man-db ... Processing triggers for doc-base ... Processing 1 added doc-base file(s)... Registering documents with scrollkeeper... Processing triggers for install-info ... Setting up libkrb5support0 (1.8.3+dfsg-5ubuntu2.2) ... Setting up libk5crypto3 (1.8.3+dfsg-5ubuntu2.2) ... Setting up libkrb5-3 (1.8.3+dfsg-5ubuntu2.2) ... Setting up libgssapi-krb5-2 (1.8.3+dfsg-5ubuntu2.2) ... Setting up libgssrpc4 (1.8.3+dfsg-5ubuntu2.2) ... Setting up libkadm5clnt-mit7 (1.8.3+dfsg-5ubuntu2.2) ... Setting up libkdb5-4 (1.8.3+dfsg-5ubuntu2.2) ... Setting up libkadm5srv-mit7 (1.8.3+dfsg-5ubuntu2.2) ... Setting up comerr-dev (2.1-1.41.14-1ubuntu3) ... Setting up krb5-multidev (1.8.3+dfsg-5ubuntu2.2) ... Setting up libpq5 (8.4.10-0ubuntu0.11.04.1) ... Setting up libssl-dev (0.9.8o-5ubuntu1) ... Setting up libkrb5-dev (1.8.3+dfsg-5ubuntu2.2) ... Setting up libpq-dev (8.4.10-0ubuntu0.11.04.1) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place root@chris-VirtualBox:~/site#
And then just run bundle install again:
root@chris-VirtualBox:~/site# bundle install
There’s some documentation on the gems wiki page: https://bitbucket.org/ged/ruby-pg/wiki/Home
Leave a Reply