Cannot install pg gem in Mavericks with Postgres.app

你说的曾经没有我的故事 提交于 2019-11-27 10:02:46
Tom De Leu

You probably have the wrong path for --with-pg-config, check if it's actually there.

You can find the correct path to pg_config with:

find /Applications -name pg_config

In the latest Postgres.app Version the path is:

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.5/bin/pg_config

In my case (running Postgres.app v9.3.4.2) it only seemed to work when prepending the environment architecture flags:

env ARCHFLAGS="-arch x86_64" gem install pg -- \
--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config 

Being on a brand new mac, here's what I had to do:

  1. Install Xcode tools from the app store
  2. Open Xcode tools and accept the license
  3. Now run (hopefully a future-proofed command):

    version=$(ls /Applications/Postgres.app/Contents/Versions/ | tail -1) gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/$version/bin/pg_config .

If you have trouble, you can troubleshoot a bit by checking out the actual error in the mkmf.log which you can find by running (if using rvm):

cd ~/.rvm ; find . -name mkmf.log | grep pg

I was able to install pg with this command

    gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config

I found my path by running

    sudo find / -name "pg_config"

and I Successfully installed pg-0.17.1

To resolve this issue I installed postgres using homebrew using the following in the terminal window:

brew install postgres

Homebrew can be found here

http://brew.sh

adding the postgress bin dir to the path also does the trick. just add the bin to the pat like this. with recent installs the latest symbolic link makes sure that this path should be 'stable' for future version upgrades.

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin

This worked for me:

gem install pg -- --with-pg-config=`which pg_config`

For future reference, since a lot of us are posting new paths for the new version numbers:

Currently I'm seeing a symlink called latest in /Applications/Postgres.app/Contents/Versions/.

You should be able to just do:

$ gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config

And forget about the version number. This might not apply to every (older) version, but I myself was looking for a snippet I could save and reuse.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!