0

I am currently using the postgress.app and trying to install pg gem for a rails project. But the problem is I keep getting the following:

$ gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
Building native extensions with: '--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config'
This could take a while...
ERROR:  Error installing pg:
    ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
Using config values from /Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for pg_config_manual.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)
*** 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=/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
    --with-pg
    --without-pg
    --with-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}/
    --with-pqlib
    --without-pqlib
    --with-libpqlib
    --without-libpqlib
    --with-ms/libpqlib
    --without-ms/libpqlib


Gem files will remain installed in /Users/Adam/.rvm/gems/ruby-2.1.5/gems/pg-0.17.1 for inspection.
Results logged to /Users/Adam/.rvm/gems/ruby-2.1.5/gems/pg-0.17.1/ext/gem_make.out

So what am I suppose to do to get the pg gem to actually install while using the Postgress.app?

Update

  1. Ruby Version: 2.2.0
  2. Rails Version: 4.1.5
  3. MacOSX: 10.10
  4. Postgress: Postrgess 9.3 app
  5. Pg gem version: 0.17.1
Community
  • 1
  • 1
TheWebs
  • 12,470
  • 30
  • 107
  • 211

2 Answers2

0

this command did the trick for me :

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
Ahmad Al-kheat
  • 1,805
  • 2
  • 16
  • 25
0

Take a look at "Failing installing pg gem, "mkmf.rb can't find header files for ruby" (Mac OSX 10.6.5)".

Usually the problem when install PostgreSQL and the pg gem, is that the gem can't find PostgreSQL's pg_config tool, which can tell the gem where things it needs are on the disk. Sometimes the problem is it can't find the headers needed. So, you'll need to locate one or the other.

Locate that manually, then tell the gem, and should be up and running.

Once you've got it installed, create a little shell script as mentioned in the linked answer, and future installs will be a lot easier.

Community
  • 1
  • 1
the Tin Man
  • 158,662
  • 42
  • 215
  • 303
  • Following those instructions still did not work, I got the same results as my question. Updated Question to include ruby, rails, mac and postgres versions – TheWebs Jan 01 '15 at 23:22
  • You do know that Mac OS already installs PostgreSQL too, right? It should be in /Library/PostgreSQL/9.1/bin/pg_config. It's perfectly safe to use that version. – the Tin Man Jan 01 '15 at 23:44
  • I actually removed that version a while ago. So it is no longer installed. The only one is in Applications ... for the Postgres.app – TheWebs Jan 02 '15 at 01:27
  • *WHY* did you remove the PostgreSQL Apple installs? Was it in the way? Was it taking up a huge amount of disk space? Did you search to find out if ANY of Apple's pre-installed software requires PostgreSQL and now can't run correctly? – the Tin Man Jan 02 '15 at 18:57