Не удается найти заголовок libpq-fe.h при установке pg gem

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

$ 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

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


person demonchand    schedule 18.05.2011    source источник
comment
вы можете доказать, что у вас установлен pg?   -  person thenengah    schedule 18.05.2011


Ответы (44)


Похоже, что в Ubuntu этот заголовок является частью libpq-dev пакета (по адресу как минимум в следующих версиях Ubuntu: 11.04 (Натти Нарвал), 10.04 (Lucid Lynx), 11.10 (Oneiric Ocelot), 12.04 (точный панголин), 14.04 (Trusty Tahr) и 18.04 (Bionic Beaver)):

...
/usr/include/postgresql/libpq-fe.h
...

Поэтому попробуйте установить libpq-dev или его аналог для вашей ОС:

  • Для систем Ubuntu / Debian: sudo apt-get install libpq-dev
  • В системах Red Hat Linux (RHEL): yum install postgresql-devel
  • Для Mac Homebrew: brew install postgresql
  • Для Mac MacPorts PostgreSQL: gem install pg -- --with-pg-config=/opt/local/lib/postgresql[version number]/bin/pg_config
  • Для OpenSuse: zypper in postgresql-devel
  • Для ArchLinux: pacman -S postgresql-libs
person Community    schedule 18.05.2011
comment
у меня не сработало на ubuntu 11.04 durrantm@castleLinux2011:~/Dropbox_not_syncd/webs/3/linker$ gem install libpq-dev ERROR: Could not find a valid gem 'libpq-dev' (>= 0) in any repository durrantm@castleLinux2011:~/Dropbox_not_syncd/webs/3/linker$ - person Michael Durrant; 17.01.2012
comment
Если после этого вам потребуется установить библиотеку javascript ... gem install 'execjs' и gem install 'therubyracer' - person Nick Woodhams; 26.04.2012
comment
@TravisR: Спасибо за обновление, я просто превратил его в вики сообщества, чтобы всем было проще поддерживать его в актуальном состоянии. - person mu is too short; 07.06.2012
comment
Я использую Ubuntu 12.10, я не могу установить pg gem после установки libpq-dev - person vedarthk; 23.01.2013
comment
@vedarthk: Что значит не умеет? Возможно, новый вопрос с журналами установки поможет вам получить необходимую помощь. - person mu is too short; 23.01.2013
comment
@muistooshort Да, я разместил вопрос: stackoverflow.com/q/14477825/1277376 - person vedarthk; 24.01.2013
comment
Спасибо, sudo apt-get install libpq-dev мне помогли - person Jiemurat; 27.03.2013
comment
Работает с Ubuntu 12.04 64 бит - person Jason Kim; 05.09.2013
comment
В Mac OS X получите homebrew из brew.sh, затем brew install postgres, чтобы установить PostgresQL и его файлы заголовков. - person Hanxue; 25.11.2013
comment
Работает как шарм в centOS 6.5 - person Sebastialonso; 14.05.2014
comment
Измените свой ответ, включив apt-get install postgres-server-dev-{pg.version}. Ваш ответ больше не работает с postgresql 9.4 в Ubuntu 14.04 См. stackoverflow.com/a/28837453/75194 < / а> - person Ryan Rauh; 19.03.2015
comment
@RyanRauh: Вы можете внести правку? Я не использую Ubuntu прямо сейчас, поэтому у меня нет достаточной квалификации, чтобы здесь много говорить. - person mu is too short; 20.03.2015
comment
У меня просто возникла проблема с этим, потому что я путал g и q. Чтобы было ясно, нужен пакет libpq-dev с Q, а не G - person Shelvacu; 07.11.2015
comment
Я попытался сделать это в Ubuntu 14.04, но он дал мне следующее: libpq-dev: Зависит: libpq5 (= 9.3.4-1), но нужно установить 9.3.10-0ubuntu0.14.04. - person Michael Lafayette; 13.01.2016
comment
Но затем, когда я пытаюсь установить libpq5, он говорит, что libpq5 уже является самой новой версией. То же самое и с PostgreSQL. - person Michael Lafayette; 13.01.2016
comment
Версия PostgreSQL: psql --version: psql (PostgreSQL) 9.3.10. PostgreSQL 9.3.10 на x86_64-unknown-linux-gnu, скомпилирован gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2, 64-разрядная версия. - person Michael Lafayette; 13.01.2016
comment
Следующие пакеты имеют неудовлетворенные зависимости: postgresql-server-dev-9.3: Зависит: libpq-dev (›= 9.3 ~), но он не будет установлен. E: Невозможно исправить проблемы, у вас есть сломанные пакеты. - person Michael Lafayette; 13.01.2016
comment
@MichaelLafayette У меня сейчас нигде нет Ubuntu, поэтому я не знаю, в чем может быть проблема. - person mu is too short; 13.01.2016
comment
Выполняя команду: sudo apt-get install libpq-dev, я получаю ответ - не удается найти пакет. Итак, я выполняю sudo apt-get update, затем выполняю sudo apt-get install libpq-dev. Наконец он успешно установлен. - person jamesxu-e.g.; 11.04.2017
comment
Почему дизайнеры драгоценных камней полагаются на неявные, недокументированные, глобально установленные зависимости и не предпринимают попыток проверить их существование перед установкой драгоценного камня? - person Andy Ray; 19.10.2018
comment
@AndyRay Но они проверяют зависимости, вот о чем идет проверка pg_config и проверка libpq-fe.h. Невозможно проверить, установлен ли материал для разработки PostgreSQL без установки некоторых скриптов, которые ищут стандартные инструменты разработки PostgreSQL (например, pg_config или файл заголовка). То же самое происходит, когда вам нужно что-то, что не упаковано внутри драгоценного камня. - person mu is too short; 19.10.2018
comment
Системное решение Ubuntu / Debian, действующее для Raspbian v9.9 на устройствах Raspberry Pi. - person Sopalajo de Arrierez; 13.08.2019
comment
Я пробовал те же шаги, но все еще получаю ошибку в Redhat: создание собственных расширений. Это может занять некоторое время ... ОШИБКА: Ошибка при установке pg: ОШИБКА: не удалось создать собственное расширение gem. текущий каталог: /opt/chef/embedded/lib/ruby/gems/2.5.0/gems/pg-1.1.4/ext / opt / chef / embedded / bin / ruby ​​-r ./siteconf20190924-18624-nckmb.rb extconf.rb проверка для pg_config ... да Использование значений конфигурации из / bin / pg_config проверка для libpq-fe.h ... *** Ошибка extconf.rb *** - person Jaydeep; 24.09.2019
comment
У меня это сработало, я уже установил Postgres, и мне просто нужно было выполнить sudo apt-get install libpq-dev, затем bundle install, и ошибка исчезла. Спасибо - person Felo Vilches; 20.10.2019

В macOS (ранее Mac OS X и OS X) используйте Homebrew, чтобы установить нужные заголовки:

brew install postgresql

а затем бег

gem install pg

должно сработать.

В качестве альтернативы, вместо установки всего postgresql, вы можете brew install libpq и экспортировать правильные PATH и PKG_CONFIG_PATH, как описано в разделе «Предостережения».

person iwasrobbed    schedule 09.12.2013
comment
Вызывает ли это какие-либо проблемы, если вы также используете Postgres.app? - person iconoclast; 30.10.2014
comment
@iconoclast Я использую Postgres.app для запуска экземпляра db, поэтому наличие pg gem просто позволяет вам подключить ваше приложение Rails к локальному экземпляру Postgres.app - person iwasrobbed; 31.10.2014
comment
Для меня после запуска brew install postgressql я запускаю ARCHFLAGS="-arch x86_64" gem install pg и отлично работает. - person overallduka; 31.10.2014
comment
В качестве альтернативы достаточно просто запустить brew install libpqxx в Mac OS X - person Ricardo Saporta; 21.01.2015
comment
@RicardoSaporta libpqxx устанавливает postgresql как зависимость, поэтому по сути это то же самое, что и brew install postgresql - person Troggy; 12.06.2017
comment
Вместо установки всего postgresql вы можете brew install libpq и экспортировать правильные PATH и PKG_CONFIG_PATH, как описано в разделе «Предостережения». - person goetzc; 14.01.2019
comment
Это также отсортировало его для меня в Ubuntu 20.04 с использованием Linuxbrew. sudo apt-get install libpq-dev продолжал терпеть неудачу из-за какой-то другой зависимости - person 8bitme; 02.10.2020

Я тоже пробовал делать gem install libpq-dev, но получил такую ​​ошибку:

Can't find the 'libpq-fe.h header
*** extconf.rb failed ***

Однако я обнаружил, что установка с sudo apt-get (которую я стараюсь избегать с Ruby on Rails) сработала, т.е.

sudo apt-get install libpq-dev
# or
apt-get install postgres-server-dev-{pg.version}
# for postgresql 9.4 on Ubuntu 14.04

тогда я смог сделать

gem install pg

без проблем.

person Michael Durrant    schedule 16.01.2012
comment
Правильно, гем Ruby pg обертывает обычные библиотеки C PostgreSQL, которые поставляются с пакетом Ubuntu / Debian / ... libpq-dev. - person mu is too short; 17.01.2012

Я мог бы решить это по-другому. Я не нашел библиотеку в своей системе. Поэтому я установил его с помощью приложения с основного сайта PostgreSQL. В моем случае (OS X) я нашел файл под /Library/PostgreSQL/9.1/include/ после завершения установки. У вас также может быть файл где-то еще в зависимости от вашей системы, если у вас уже установлен PostgreSQL.

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

export CONFIGURE_ARGS="with-pg-include=/Library/PostgreSQL/9.1/include/"
gem install pg

После этого он работает, потому что теперь он знает, где найти недостающую библиотеку. Просто замените путь на правильное место для вашего libpq-fe.h

person David Pelaez    schedule 12.01.2012
comment
Решение Дэвида сработало для меня. Я отследил libpq-fe.h до «/Applications/Postgres.app/Contents/Versions/9.3/include» и использовал команду экспорта с указанным путем, за которым следовала «gem install pg», и гем был успешно установлен. - person Ryan Spears; 11.04.2014
comment
Спасибо за это, у меня сработало, используя: export CONFIGURE_ARGS="with-pg-include=/usr/local/Cellar/postgresql/9.3.1/include/" - person brookr; 31.07.2014
comment
Используя Postgresql 9.3 в CentOS 6, я решил эту проблему, создав символическую ссылку сценариев pg_* в $ PATH следующим образом: ln -s /usr/pgsql-9.3/bin/p* /usr/local/bin. Я установил postgres 9.3 вот так: yum install http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm && yum install postgresql93 postgresql93-contrib postgresql93-server postgresql93-devel - person JoePasq; 16.01.2015
comment
вы также можете написать как gem install pg -- with-pg-include=/Library/PostgreSQL/9.1/include/ - person lfender6445; 02.03.2015
comment
А еще лучше использовать export CONFIGURE_ARGS="with-pg-config=/path/to/postgres/bin/pg_config". Исполняемый файл pg_config будет вызван для получения всех необходимых параметров компилятора и компоновщика - вы можете запустить его самостоятельно, чтобы увидеть их. - person skozin; 19.04.2019

Не могу найти заголовок libpq-fe.h

У меня был успех на CentOS 7.0.1406, выполнив следующие команды:

~ % psql --version # => psql (PostgreSQL) 9.4.1
yum install libpqxx-devel
gem install pg -- --with-pg-config=/usr/pgsql-9.4/bin/pg_config

В качестве альтернативы вы можете настроить сборщик так, чтобы он всегда устанавливал pg с этими параметрами (полезно для запуска сборщика в средах развертывания),

  • bundle config build.pg --with-pg-config=/usr/pgsql-9.4/bin/pg_config
person lfender6445    schedule 02.03.2015
comment
очень полезно, спасибо. Просто чтобы добавить примечание относительно конфигурации пакета ... вы должны запустить эту команду, войдя в систему как пользователь, который будет запускать следующую команду пакета. Конфигурация сборщика хранится в ~ / .bundle / config, поэтому она не будет найдена, если вы запустите конфигурацию пакета при входе в систему как root, но сборщик запускается (например, с capistrano) пользователем 'deploy'. - person Les Nightingill; 28.05.2015
comment
bundle config build.pg --with-pg-config = / usr / pgsql-9.4 / bin / pg_config решить i для меня на Centos 7 - person liloargana; 03.01.2016
comment
bundle config build.pg --with-pg-config = / usr / pgsql-10 / bin / pg_config, если вы используете postgresql10 - person Mahesh Neelakanta; 09.02.2018

Для CentOS 6.4,

yum install postgresql-devel
gem install pg

хорошо сработало!

person Arivarasan L    schedule 10.04.2013
comment
Используя macports, sudo port install postgresql-devel. - person Dawei Yang; 29.04.2014

Только для записи:

Приложение Ruby on Rails 4 в OS X с PostgresApp (в данном случае нужна версия 0.17.1 - своего рода старый проект):

gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
person pablomarti    schedule 19.10.2015
comment
Прекрасно работает, если вы используете замечательный Postgres.app. Для Postgres 10 я использовал путь /Applications/Postgres.app/Contents/Versions/10/bin/pg_config - person Master of Ducks; 17.12.2017

В Mac OS X запустите так:

gem install pg -- --with-pg-config=***/path/to/pg_config***

***/path/to/pg_config*** - это путь к pg_config

person Jiemurat    schedule 08.01.2014
comment
Проголосовали. Я установил Postgresql через grapihcal установщик EnterpriseDB. Затем мне нужно узнать путь pg-config с помощью sudo find / -name "pg_config", затем выполнить gem install pg -- --with-pg-config=/Library/PostgreSQL/9.4/bin/pg_config, используя только что обнаруженный путь. - person Yi Zeng; 01.01.2015

В моем случае это был пакет postgresql-server-dev-8.4 (я использую Ubuntu 11.04 (Натти Нарвал), 64 бита).

person Johann    schedule 18.07.2011

Правильный ответ для пользователей Mac с Postgres.app - использовать libpq, поставляемый с этим пакетом. Например, с выпуском 9.4 (текущим на момент написания этой статьи) все, что вам нужно, это:

export CONFIGURE_ARGS="with-pg-include=/Applications/Postgres.app/Contents/Versions/9.4/include"
gem install pg

Это позволит синхронизировать ваш pg гем с той версией PostgreSQL, которую вы установили. Устанавливать что-то от Homebrew в этом случае - напрасная трата.

person Community    schedule 22.01.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

person Fab V.    schedule 30.01.2015
comment
После установки библиотек ... выполните очистку: сделайте distclean, сделайте clean, ./configure и начните компилировать! - person mzalazar; 06.02.2017

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

brew install libpq
gem install pg -- --with-pg-config="/usr/local/Cellar/libpq/9.6.6/bin/pg_config"
person Michael A.    schedule 09.12.2017

Более общий ответ для любого дистрибутива на основе 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

Вот так!

person Vincent Fourmond    schedule 29.08.2013
comment
libpq-dev: /usr/include/postgresql/libpq-fe.h присутствует, тогда как postgres-xc-server-dev: /usr/include/postgres-xc/server/gtm/libpq-fe.h отсутствует? что мне не хватает? - person furiabhavesh; 11.08.2014
comment
Возможно, содержимое файла изменилось. Похоже, что в пакете postgres -... была личная копия libpq-fe.h. В любом случае, если вы хотите что-то компилировать, вам нужен libXXX-dev. - person Vincent Fourmond; 11.08.2014
comment
Итак, что делать после того, как нашли, каков следующий шаг? - person Roel Van de Paar; 27.08.2020
comment
apt-get install the_package_you_found - person Vincent Fourmond; 27.08.2020

В Ubuntu установите «libpq-dev», чтобы избавиться от этой проблемы.

sudo apt-get install libpq-dev
person Raju    schedule 12.11.2017
comment
Если этого недостаточно, добавьте sudo apt-get install postgresql перед libpq-dev - person Alex Poca; 08.08.2019

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

sudo dnf install /usr/include/libpq-fe.h
person Aarón Castro    schedule 19.06.2019
comment
Я хотел бы когда-нибудь купить вам пива. Это ЕДИНСТВЕННАЯ вещь, которая работала в Centos 7/8 после нескольких часов борьбы с ней. - person Augusto Samamé Barrientos; 10.04.2021

Я нашел этот ответ, и он был единственным, который у меня сработал (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).

person Cynthia Sanchez    schedule 20.10.2014
comment
Спасибо, у меня сработало только это! - person lacostenycoder; 21.01.2021

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

gem install pg -v '0.18.4' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
person Mario    schedule 04.02.2016

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

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

первый. потом

bundle install

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

person joh-mue    schedule 17.02.2015

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

ARCHFLAGS="-arch x86_64" gem install pg

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

person rassom    schedule 10.08.2014

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

Сообщенная ошибка была типичной:

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, чтобы получить последние версии пакетов, которые я установил ранее.

person Martin Streicher    schedule 02.11.2014

В 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
person user2086641    schedule 21.01.2015

У меня была эта проблема с Postgresql 9.6. Я смог исправить это, выполнив:

brew upgrade [email protected]
brew link [email protected] --force
gem install pg
person mwalsher    schedule 05.01.2018

Во FreeBSD (9.1) необходимый пакет - это / usr / ports / database / postgresql-server *, который при установке также установит требуемый файл заголовка, что приведет к сбою установки gem-пакета "pg". Этот ответ здесь помог мне найти решение, но разница в именах пакетов потребовала небольшого поиска.

Надеюсь, это поможет кому-то избежать головной боли при поиске пакета "-dev" в системе FreeBSD!

person Claus Due    schedule 06.09.2013

В 64-разрядной версии Debian 7.0 (Wheezy) просто запустите:

sudo apt-get install libpq-dev

После успешной установки libpq-dev запустите:

bundle install
person Eric Wu    schedule 19.02.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 - изменяя конфигурацию profile.d - вы следует перезагрузить Bash.

person lucianosousa    schedule 30.07.2014
comment
Как вы установили postgres? Я связал скрипты pg_* в путь следующим образом: ln -s /usr/pgsql-9.3/bin/p* /usr/local/bin. После этого мне не потребовались дополнительные скрипты или переменные окружения. - person JoePasq; 16.01.2015

Местоположение libpq-fe.h зависит от того, где находится ваш установленный PostgreSQL (что зависит от того, как вы его установили). Используйте locate (http://en.wikipedia.org/wiki/Locate_%28Unix%29), чтобы найти libpq-fe.h файл на вашем компьютере. Если он существует, он будет в каталоге include вашей установки PostgreSQL.

$ locate libpq-fe.h
/Library/PostgreSQL/9.1/include/libpq-fe.h

Каталог bin, содержащий pg_config, будет находиться в том же каталоге, что и каталог include. Как подсказывает ошибка, используйте параметр --with-pg-config для установки драгоценного камня:

$ gem install pg --with-pg-config="/Library/PostgreSQL/9.1/bin/pg_config"

Обратите внимание, что вам может потребоваться запустить updatedb, если вы никогда не использовали locate или если вы не обновлялись с момента установки PostgreSQL.

person akbrown    schedule 26.01.2015
comment
Без -- перед --with-pg-config=... я получаю сообщение об ошибке: ОШИБКА: при выполнении gem ... (OptionParser :: InvalidOption) недопустимая опция: --with-pg-config = / usr / bin / pg_config) - person Alexis Wilke; 15.10.2019

Я наконец решил эту проблему, но уже не используя ранее описанные методы.

Используя brew install postgresql, я узнаю, что он уже установлен, но не связан.

  1. Узнайте, где установлен PostgreSQL, и удалите его,

  2. Потом brew install postgresql снова,

  3. brew link postgresql

  4. gem install pg

person Chile Yang    schedule 15.02.2016
comment
ссылка brew --force postgresql сработала для меня, но для этого мне нужно запустить экспорт PATH=/usr/local/opt/[email protected]/bin: $ PATH '›› ~ / .bash_profile - person Jagdish; 01.08.2018

У меня только что было это на OSX под управлением brew и [email protected].

Мое исправление было таким:

CONFIGURE_ARGS="with-pg-include=/usr/local/opt/[email protected]/include/" bundle install
person Nick    schedule 04.04.2017

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

gem install pg -- --with-pg-include=/<path>/.asdf/installs/postgres/<version>/include
person Matthias Michael Engh    schedule 05.02.2019

В Ubuntu 20.04 у меня уже была libpq5: amd64 версии 13.2-1.pgdg20.04 + 1. Теперь, когда я пытался установить libpq-dev из репозитория apt, я получал

The following packages have unmet dependencies:
libpq-dev : Depends: libpq5 (= 12.6-0ubuntu0.20.04.1) but 13.2-1.pgdg20.04+1 is to be installed

Я взял deb с http://ftp.us.debian.org/debian/pool/main/p/postgresql-13/libpq-dev_13.2-1_amd64.deb и сделал следующее:

mkdir -p /tmp/libpq-dev
dpkg-deb -R libpq-dev_13.2-1_amd64.deb /tmp/libpq-dev
sed -i 's|= 13.2-1|= 13.2-1.pgdg20.04+1|' /tmp/libpq-dev/DEBIAN/control
dpkg-deb -b /tmp/libpq-dev /tmp/libpq-dev-new.deb
sudo dpkg -i /tmp/libpq-dev-new.deb

После этого я с удовольствием пользовался драгоценным камнем. Никаких дополнительных установок или чего-то подобного.

person Samar    schedule 12.03.2021

Для AltLinux должен быть установлен пакет postgresqlx.x-devel (в моем случае postgresql9.5-devel):

apt-get install postgresql9.5-devel
person Малъ Скрылевъ    schedule 02.03.2016
comment
Вы также можете установить определенные версии с помощью yum - yum install postgresqlxx-devel, например, yum install postgresql94-devel - person dworrad; 18.07.2016

Я решил эту проблему, установив пакет postgresql-common. Этот пакет предоставляет двоичный файл pg_config, который, скорее всего, является тем, что вам не хватало.

person Fabrizio Regini    schedule 07.01.2013

У меня была аналогичная проблема, и это исправило ее для меня:

gem install do_postgres -- --with-pgsql-server-dir=/Applications/Postgres.app/Contents/MacOS --with-pgsql-server-include=/Applications/Postgres.app/Contents/MacOS/include/server

Источник:

https://gist.github.com/oisin/6562181

person dunkles    schedule 07.02.2014

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

person ether_joe    schedule 25.08.2014

В Fedora 32 мне удалось решить ту же проблему, специально установив libpq5-devel.

Если вы установите postgresql из официального репозитория, у вас будет несколько версий, которые не решат проблему, поэтому на самом деле нужно попробовать, какая из них нужна.

person A. Rosas    schedule 18.01.2021
comment
Не разрешает редактировать ваш ответ, вы пропустили письмо, оно должно быть libpq5-devel. Хотя это помогло, спасибо. - person DisplayMyName; 15.03.2021
comment
Клянусь, я заметил это и исправил, но, думаю, я просто подумал об этом. Спасибо, что указали на это. - person A. Rosas; 17.03.2021

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

person vasilakisfil    schedule 23.03.2014

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

~ > 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

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

person Jens    schedule 29.08.2015
comment
port select --set postgresql postgresql96 или любую другую версию, установленную вами на активные символические ссылки, включая pg_config - person troex; 14.02.2017

В Arch Linux вам потребуется установить postgresql-libs. :

sudo pacman -Syu postgresql-libs
person Philip Kirkbride    schedule 21.03.2017

Для 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
person Muhammad Hassan Nasr    schedule 24.04.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.

person sapy    schedule 18.05.2018

Я пробовал все решения, но работает только под командой

pip install psycopg2-binary
person RaviPatidar    schedule 18.06.2020

Ubuntu 20.04.1 LTS, мне показалось, что это сработало:

sudo apt-get install ruby ruby-dev libpqxx-dev libpq-fe-dev libpq-dev 
sudo gem install pg -- --with-pg-config=/usr/include/postgresql/pg_config --with-pg-include=/usr/include/postgresql/
person Roel Van de Paar    schedule 28.08.2020
comment
И ls /usr/include/postgresql/libpq-fe.h /usr/include/postgresql/pg_config можно использовать для проверки наличия файлов для начала. - person Roel Van de Paar; 28.08.2020

Проблема только в отсутствии libpq-fe.h

В Ubuntu нам просто нужно запустить: sudo apt-get install libpq-dev

Приведенная выше команда установит НОВЫЙ пакет libpq-dev, и после этого вы снова сможете выполнить bundle install, чтобы возобновить установку пакета.

person Yash Dubey    schedule 13.06.2021

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

rvm reinstall 1.9.3
person Micah Roberson    schedule 29.07.2012
comment
это помогло вернуться к исходному распределению ruby ​​из rvm, но не устранило проблему. - person Oleksii Kyslytsyn; 01.10.2017