14

I have recently tried to upgrade my rail 3.2* application to rails 4.2.*. But, I was stopped while installing the 'pg' gem. When I googled it, the solutions which are mostly related to OSX only. But I'm using ubuntu 14.04. Need any suggestion for the below issue.

I have installed postgresql 9.3.5 version on my machine.

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /usr/local/rvm/rubies/ruby-2.1.2/bin/ruby extconf.rb 
checking for pg_config... yes
Using config values from /usr/bin/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/local/rvm/rubies/ruby-2.1.2/bin/ruby
    --with-pg
    --without-pg
    --enable-windows-cross
    --disable-windows-cross
    --with-pg-config
    --without-pg-config
    --with-pg_config
    --without-pg_config
    --with-pg-dir
    --without-pg-dir
    --with-pg-include
    --without-pg-include=${pg-dir}/include
    --with-pg-lib
    --without-pg-lib=${pg-dir}/lib

extconf failed, exit code 1

Gem files will remain installed in /usr/local/rvm/gems/ruby-2.1.2@r4/gems/pg-0.18.1 for inspection.
Results logged to /usr/local/rvm/gems/ruby-2.1.2@r4/extensions/x86_64-linux/2.1.0/pg-0.18.1/gem_make.out
An error occurred while installing pg (0.18.1), and Bundler cannot continue.
Make sure that `gem install pg -v '0.18.1'` succeeds before bundling.
Mr. Black
  • 11,692
  • 13
  • 60
  • 85

3 Answers3

32

You need install the postgreSQL dev package with header of PostgreSQL

sudo apt-get install libpq-dev

You may also try

sudo apt-get install postgresql-client
sudo apt-get install postgresql postgresql-contrib
Hardik Hardiya
  • 837
  • 6
  • 14
11

Ran into this exact problem trying to gem install pg -v 0.18.1 with postgresql 9.4 on ubuntu 14.04

sudo apt-get install libpq-dev build-essential postgresql-server-dev-9.4

Basically I was missing postgresql-server-dev-${version}

In your case try

sudo apt-get install libpq-dev build-essential postgresql-server-dev-9.3
Ryan Rauh
  • 571
  • 4
  • 13
  • 3
    Thank you! Btw, sudo apt-get install libpq-dev was enough for me. – mondayguy May 09 '15 at 17:46
  • I have been wrestling this for several days and nothing helped until the `build-essential` package was installed (for `gem pg 0.21`).. I didn't see that anywhere else, so thank you! – kevlarr Sep 04 '17 at 17:59
  • 2
    Although just tried with `apt-get install libpq-dev gcc make` rather than the full `build-essential` and that worked as well – kevlarr Sep 04 '17 at 18:34
0

Follow this command on ubuntu 16.04

sudo apt install libpq-dev postgresql-server
sudo -u postgres createuser -s $(whoami); createdb $(whoami)
gem install pg
X zheng
  • 1,731
  • 1
  • 17
  • 25