Не удается установить pg gem в Mavericks с помощью Postgres.app

Я пытаюсь установить pg gem для использования с Postgres.app на моей локальной машине. Я бегу Маверикс.

Postgres.app установлен и работает нормально, но я не могу заставить камень работать. Я сделал следующее:

  • Используется команда env ARCHFLAGS = "- arch x86_64" gem install pg - --with-pg-config =/Applications/Postgres.app/Содержание/MacOS/bin/pg_config 'из документации Postgres.app
  • Обновлено Homebrew и установлен Apple GCC 4.2
  • Установлены инструменты разработчика Xcode
  • Обновлен мой $PATH для ссылки на каталоги bin и lib Postgres.app.

Все без успеха. Вот конкретное сообщение об ошибке, которое я получаю:

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

    /Users/Brian/.rvm/rubies/ruby-2.0.0-p353/bin/ruby extconf.rb --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
Using config values from /Applications/Postgres.app/Contents/MacOS/bin/pg_config
sh: /Applications/Postgres.app/Contents/MacOS/bin/pg_config: No such file or directory
sh: /Applications/Postgres.app/Contents/MacOS/bin/pg_config: No such file or directory
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.

Provided configuration options:
    --with-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=/Users/Brian/.rvm/rubies/ruby-2.0.0-p353/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}/

Буду признателен за любую помощь, которую вы можете предложить. Спасибо!

Ответ 1

Вероятно, у вас есть неправильный путь для --with-pg-config, проверьте, действительно ли он там.

Вы можете найти правильный путь к pg_config с помощью:

find /Applications -name pg_config

В последней версии Postgres.app путь:

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

Ответ 2

В моем случае (запуск Postgres.app v9.3.4.2) он работал только при добавлении флагов архитектуры среды:

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

Ответ 3

Будучи на совершенно новом mac, вот что я должен был сделать:

  • Установить инструменты Xcode из магазина приложений
  • Откройте инструменты Xcode и примите лицензию
  • Теперь запустите (надеюсь, будущую команду):

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

Если у вас есть проблемы, вы можете немного устранить проблему, проверив фактическую ошибку в mkmf.log, которую вы можете найти, выполнив (если используется rvm):

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

Ответ 4

Мне удалось установить pg с помощью этой команды

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

Я нашел свой путь, запустив

    sudo find / -name "pg_config"

и я успешно установлен pg-0.17.1

Ответ 5

Чтобы решить эту проблему, я установил postgres, используя homebrew, используя следующее в окне терминала:

brew install postgres

Домашняя страница находится здесь

http://brew.sh

Ответ 6

Это сработало для меня:

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

Ответ 7

добавление пути postgress bin к пути также делает трюк. просто добавьте корзину в пат, как это. с недавней установкой последней символической ссылки, убедитесь, что этот путь должен быть "стабильным" для будущих обновлений версии.

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

Ответ 8

В будущем, поскольку многие из нас публикуют новые пути для новых номеров версий:

В настоящее время я вижу символическую ссылку latest в /Applications/Postgres.app/Contents/Versions/.

Вы должны иметь возможность:

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

И забудьте о номере версии. Это может не относиться к каждой (более старой) версии, но я сам искал фрагмент, который я мог бы сохранить и повторно использовать.