I’ve been using the PostgreSQL Mac OS X app from Mattt Thompson and Heroku for quite some time now. If you don’t know what it is, it’s a drop in app bundle for the PostgreSQL database. There are many ways that work, this just happens to be really simple.
I use PostgreSQL with my Ruby on Rails projects and combine that with the pg ruby gem.
I ran into a situation where the pg gem would not install because it could not find pg_config in a known location on my Mac. The error occurred on Rails 3.2 but 4.0 may show the same behavior.
The error can come up when running a
bundle install or just a straight
gem install pg from the command line. The resulting error may look something like this:
Installing pg (0.17.0) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension
An error occurred while installing pg (0.17.0), and Bundler cannot continue.
Make sure that `gem install pg -v ‘0.17.0'` succeeds before bundling.
I already mentioned the problem is the gem install not finding pg_config during installation. So let’s find it.
1. First, find where pg_config is located. Run this command from a terminal window:
Should display something like this:
2. You can tell RubyGems where your pg_config file is located:
gem install pg -- --with-pg-config='PATH_TO_YOUR_PG_CONFIG'
For example, pg_config is here on my system:
So I would install the gem this way:
gem install pg -- --with-pg-config='/Applications/Postgres.app/Contents/MacOS/bin/pg_config'
The pg gem should now install. I hope this helps.
UPDATE: Scott Watermasysk points out another good solution:
@rbazinet another route that worked for me was to put the pg.app (as a folder) in my path. This allows the config to be properly found.
— Scott Watermasysk (@scottw) December 19, 2013