Не могу найти клиентскую библиотеку PostgreSQL (libpq) - PullRequest
146 голосов
/ 02 июня 2011

Я пытаюсь установить PostgreSQL для Rails на Mac OS X 10.6.Сначала я попробовал установить MacPorts, но у меня ничего не вышло, поэтому я установил DMG в один клик.Кажется, это сработало.

Я подозреваю, что мне нужно установить пакеты разработки PostgreSQL, но я понятия не имею, как это сделать на OS X.

Вот что я получаю, когда пытаюсь сделать sudo gem install pg:

$ sudo gem install pg
Building native extensions.  This could take a while...
ERROR:  Error installing pg:
    ERROR: Failed to build gem native extension.

        /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
checking for pg_config... yes
Using config values from /Library/PostgreSQL/8.3/bin/pg_config
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.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/1.8/usr/bin/ruby
    --with-pg
    --without-pg
    --with-pg-dir
    --without-pg-dir
    --with-pg-include
    --without-pg-include=${pg-dir}/include
    --with-pg-lib
    --without-pg-lib=${pg-dir}/lib
    --with-pg-config
    --without-pg-config
    --with-pg_config
    --without-pg_config
    --with-pqlib
    --without-pqlib
    --with-libpqlib
    --without-libpqlib
    --with-ms/libpqlib
    --without-ms/libpqlib


Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/pg-0.11.0 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/pg-0.11.0/ext/gem_make.out

Ответы [ 16 ]

1 голос
/ 20 февраля 2014

Так что в основном я сделал это; -)

brew install postgres
1 голос
/ 29 ноября 2013

Вот как я сделал это, чтобы работать на Маверикс. Примечание: я уже установил postgresql 9.3 от homebrew.

  1. Обновление Xcode до 5.0 из App Store

  2. Установка инструментов разработчика командной строки

    xcode-select --install

  3. Согласен с лицензией Xcode

    sudo xcodebuild -license

  4. Установить драгоценный камень

    ARCHFLAGS = "- arch x86_64" gem install pg

1 голос
/ 26 апреля 2012

Ответ ARCHFLAGS, предложенный другими, не будет работать, если вы каким-то образом получили 64-битную версию postgres (которую установит homebrew) и 32-битную версию ruby. По какой-то причине rbenv настаивает на сборке ruby ​​1.9.2-p290 как 32-битной для меня, что делает невозможным соединение с 64-битными postgres.

Проверьте архитектуру вашего двоичного файла ruby ​​с помощью

file `which ruby`

или при использовании rbenv

file `rbenv which ruby`

И сравните с вашим postgres:

file `which postgres`

Если есть несоответствие, вам нужно переустановить postgres или ruby. С помощью rbenv я решил эту проблему, просто переключившись на другую версию: 1.9.3-p194 вместо 1.9.2-p290.

0 голосов
/ 24 июля 2018

На Mac вы можете попробовать это (работает для меня): gem install pg - with-pg-include = / Library / PostgreSQL / 9.5 / include Fetching: pg-1.0.0.gem (100%) Сборка собственных расширенийwith: 'with-pg-include = / Library / PostgreSQL / 9.5 / include' Это может занять некоторое время ... Успешно установленная pg-1.0.0 Разбор документации для pg-1.0.0 Установка ri документации для pg-1.0.0Закончена установка документации для pg через 3 секунды. Установлен 1 гем

(в этой части "/Library/PostgreSQL/9.5/include" необходимо указать путь к Postgres)

0 голосов
/ 28 июня 2018

Как упомянуто выше, это связано с тем фактом, что на rbenv /usr/bin/ruby: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [i386:Mach-O executable i386] было две рубиновые арки, мне просто нужно было установить pg gem принудительно x86_64 arch для использования с этой командой:

sudo env ARCHFLAGS="-arch x86_64" gem install pg

Не забудьте обновить свой bash_profile

Добавить путь к своим postgres, в этом случае я использую приложение Postgres (OSX) вместо brew (https://postgresapp.com/) по умолчанию это местоположение:

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

Обновить bash с помощью

sudo vi ~/.bash_profile

После этого мне удалось наконец успешно установить pg gem

Надеюсь, это поможет!

0 голосов
/ 02 декабря 2015

Я, наверное, немного опоздал на вечеринку, но в моем случае я использовал rbenv и обновился до Ruby 2.2.3.Мне пришлось установить Bundler, чтобы заставить мою работать, у меня была старая версия системы.

gem install bundler

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...