Не удается найти заголовок 'libpq-fe.h при попытке установить гем pg - PullRequest
715 голосов
/ 18 мая 2011

Я использую предварительную версию Ruby on Rails 3.1. Мне нравится использовать PostgreSQL, но проблема заключается в установке гема pg. Это дает мне следующую ошибку:

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

        /home/u/.rvm/rubies/ruby-1.9.2-p0/bin/ruby extconf.rb
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
 --with-pg-config=/path/to/pg_config
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
    --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=/home/u/.rvm/rubies/ruby-1.9.2-p0/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


Gem files will remain installed in /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0 for inspection.
Results logged to /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0/ext/gem_make.out

Как мне решить эту проблему?

Ответы [ 39 ]

9 голосов
/ 30 января 2015

У меня была такая же проблема на Amazon Linux.Я мог найти заголовок libpq-fe.h, но каким-то образом он не работал.

Он был получен из разных версий пакетов, которые были установлены разными пользователями на машине.PostgreSQL 9.2 и PostgreSQL 9.3 были установлены.Итак, перед включением библиотек убедитесь в своей версии PostgreSQL.

Для меня волшебная командная строка была:

sudo yum install postgresql93 postgresql93-server postgresql93-libs postgresql93-contrib postgresql93-devel

Источник: Практически идиотское руководство поустановить PostgreSQL 9.3, PostGIS 2.1 и pgRouting с Yum

7 голосов
/ 30 августа 2013

Более общий ответ для любого дистрибутива на основе Debian (включая Ubuntu) следующий.Сначала установите пакет apt-file, работающий от имени пользователя root:

apt-get install apt-file

Это позволит вам искать пакеты, содержащие файл.Затем обновите свою базу данных, используя

apt-file update

(это можно запустить как обычный пользователь).Затем найдите отсутствующий заголовок, используя:

apt-file search libpq-fe.h

На моей машине это дает:

libpq-dev: /usr/include/postgresql/libpq-fe.h
postgres-xc-server-dev: /usr/include/postgres-xc/server/gtm/libpq-fe.h

Вот, пожалуйста!

4 голосов
/ 02 ноября 2014

Я недавно обновился до Mac OS X v10.10 (Yosemite), и у меня возникли трудности с сборкой камня pg.

Сообщение об ошибке было типичным:

Using config values from /usr/local/bin/pg_config
checking for libpq-fe.h... *** extconf.rb failed ***

Мое решение было gem uninstall pg и затем bundle update pg, чтобы заменить драгоценный камень самым последним.Я выполнил brew update; brew upgrade после установки Yosemite, чтобы получить последние версии пакетов, которые я установил ранее.

4 голосов
/ 10 августа 2014

У меня была такая же проблема в Mac OS, но я легко установил гем PostgreSQL, используя в терминале следующее:

ARCHFLAGS="-arch x86_64" gem install pg

(сначала я установил PostgreSQL с brew install postgresql.)

4 голосов
/ 09 декабря 2017

Для MacOS без установки сервера PostgreSQL:

brew install libpq
gem install pg -- --with-pg-config="/usr/local/Cellar/libpq/9.6.6/bin/pg_config"
4 голосов
/ 05 февраля 2016

На Mac я решил это с помощью этого кода:

gem install pg -v '0.18.4' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
4 голосов
/ 20 октября 2014

Я нашел этот ответ, и он был единственным, который работал для меня (Mac OS) - после исследования в течение примерно двух дней:

$ sudo su

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

Building native extensions.  This could take a while...
Successfully installed pg-0.11.0
1 gem installed
Installing ri documentation for pg-0.11.0...
Installing RDoc documentation for pg-0.11.0...

См. Вопрос переполнения стека Можетнайти клиентскую библиотеку PostgreSQL (libpq) .

3 голосов
/ 21 января 2015

В CentOS я установил libpq-dev package, используя приведенную ниже команду

yum install postgresql-devel

Выполнение gem install pg вернуло ту же ошибку, что и "No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config".

Установка драгоценного камня, как описано нижемоя проблема

gem install pg -- --with-pg-config=/usr/pgsql-x.x/bin/pg_config
3 голосов
/ 17 февраля 2015

Я запускаю Postgres.app на Mac, и мне пришлось

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

первый. Тогда

bundle install

работал для меня.

2 голосов
/ 30 июля 2014

В CentOS 6.5 (Squeeze) я создал файл:

$ sudo touch /etc/profile.d/psql.sh

с содержимым:

pathmunge /usr/pgsql-9.3/bin

Обратите внимание, здесь вы должны указать путь к PostgreSQL с помощью файла pg_config.Вы можете найти это с помощью команды:

$ sudo find / -iname pg_config

Сохраните файл:

$ sudo chmod +x /etc/profile.d/ruby.sh

и попробуйте выполнить вашу команду снова.

Примечание: Каждый раз, когда вы меняете Bash configuration - изменение конфигурации profile.d - вам необходимо перезагрузить Bash.

...