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

can’t find the ‘libpq-fe.h header *\* extconf.rb failed **, you may find this when you get error installing pg gem in your ruby environment.

What is the Problem with libpq-fe.h?

When you try install gem pg in your Ruby environment on your mac machine, it has dependency over library with name libpq-fe.h(libpq-dev) which is not installed on your machine. That’s why it shows the error message.

Terminal Log

You might have similar terminal error log as given below:

Building native extensions.  This could take a while...
ERROR:  Error installing pg:
ERROR: Failed to build gem native extension.
/Users/username/.rvm/rubies/ruby-2.0.0-p247/bin/ruby 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.
.
.

Solution 1:

  1. Install Postgres on your machine. (It resolves dependency of library libpq-fe.h shared library)

  2. Use following command to install pg gem in your ruby environments

gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config

(considering you are trying this on MAC OS X)

In general:

gem install pg -- --with-pg-config='PG_CONFIG_PATH'

Solution 2:

  1. Try installing libpq-dev

MAC Users -

brew install libpq-dev #OR sudo apt-get install libpq-dev

Linux/Unix users -

sudo apt-get install libpq-dev
  1. Then try installing pg gem
gem install pg -- --with-pg-config= 'PG_CONFIG_PATH'

Conclusion:

One of the above solution will help resolving the problem of installing pg gem in your Ruby environment having dependency over shared library libpq-fe.h. Still if you are not able to resolve, please drop your concern in comments.