Не удается найти заголовок '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 ]

1 голос
/ 26 августа 2014

На OS X 10,9 (Mavericks), я brew-installed postgresql, и тогда мне пришлось rvm reinstall мой Ruby. Я счастлив сейчас:)

1 голос
/ 05 февраля 2019

Я столкнулся с той же ошибкой при установке postgres через asdf.Решения pg-config у меня не сработали.Вместо этого мне пришлось найти папку postgres include, которая содержит файл, и запустить команду с флагом --with-pg-include

gem install pg -- --with-pg-include=/<path>/.asdf/installs/postgres/<version>/include
0 голосов
/ 20 июня 2019

Мое решение для Fedora 30:

sudo dnf install /usr/include/libpq-fe.h
0 голосов
/ 19 мая 2018

Шаг 1) Убедитесь, что postgress установлен в вашей системе (если он уже установлен и вы можете запустить сервер postgress на вашем компьютере, перейдите к шагу (2)

apt-get install postgresql postgresql-contrib (sol - fatal error: libpq-fe.h: No such file or directory)
sudo apt-get install ruby-dev (required to install postgress below)
sudo gem install pg
sudo service postgresql restart

Шаг 2) Некоторые из c ++файлы пытаются получить доступ к libpq-fe.h напрямую и не могут найти.Поэтому нам нужно вручную искать каждый такой файл и заменить libpq-fe.h на postgresql/libpq-fe.h

Команда для поиска всех вхождений libpq-fe.h во всех каталогах и подкаталогах grep -rnw ./ -e 'libpq-fe.h'

3)Перейдите ко всем файлам, перечисленным командой, запустите на шаге 2 и вручную измените libpq-fe.h на postgresql/libpq-fe.h.

0 голосов
/ 24 апреля 2018

Для Mac OS X просто установите https://postgresapp.com/ и выполните шаги для раздела командной строки и ruby ​​

sudo mkdir -p /etc/paths.d &&
echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp

Тогда

sudo ARCHFLAGS="-arch x86_64" gem install pg
0 голосов
/ 23 марта 2014

Только удаление (sudo apt-get purge) libpq-dev и его повторная установка работали для меня.

0 голосов
/ 30 июля 2012

Я исправил ту же ошибку, выполнив переустановку Ruby через rvm:

rvm reinstall 1.9.3
0 голосов
/ 29 августа 2015

В OS X и MacPorts пакет -devel для PostgreSQL больше не требуется. Установка драгоценного камня pg работает следующим образом:

~ > sudo port install postgresql-devel
...
Error: postgresql-devel has been replaced by postgresql91; please install that port instead
~ > gem install pg -v '0.17.1' -- --with-pg-config=/opt/local/lib/postgresql95/bin/pg_config

См. Также этот пост .

0 голосов
/ 21 марта 2017

В Arch Linux вам нужно установить postgresql-libs :

sudo pacman -Syu postgresql-libs
...