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:
-
Install Postgres on your machine. (It resolves dependency of library libpq-fe.h shared library)
-
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:
- 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
- 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.
Subscribe to Ruby in Rails
Get the latest posts delivered right to your inbox
