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

$ sudo bundle install

Результат

Fetching gem metadata from https://rubygems.org/...........
Fetching gem metadata from https://rubygems.org/..
Using rake (0.9.2.2) 
Using i18n (0.6.1) 
Using multi_json (1.3.6) 
Using activesupport (3.2.8) 
Using builder (3.0.4) 
Using activemodel (3.2.8) 
Using erubis (2.7.0) 
Using journey (1.0.4) 
Using rack (1.4.1) 
Using rack-cache (1.2) 
Using rack-test (0.6.2) 
Using hike (1.2.1) 
Using tilt (1.3.3) 
Using sprockets (2.1.3) 
Using actionpack (3.2.8) 
Using mime-types (1.19) 
Using polyglot (0.3.3) 
Using treetop (1.4.11) 
Using mail (2.4.4) 
Using actionmailer (3.2.8) 
Using arel (3.0.2) 
Using tzinfo (0.3.33) 
Using activerecord (3.2.8) 
Using activeresource (3.2.8) 
Using bundler (1.2.1) 
Using coffee-script-source (1.4.0) 
Using execjs (1.4.0) 
Using coffee-script (2.2.0) 
Using rack-ssl (1.3.2) 
Using json (1.7.5) 
Using rdoc (3.12) 
Using thor (0.16.0) 
Using railties (3.2.8) 
Using coffee-rails (3.2.2) 
Using jquery-rails (2.1.3) 
Installing pg (0.14.1) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.8 extconf.rb 
checking for pg_config... yes
Using config values from /usr/bin/pg_config
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
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=/usr/bin/ruby1.8
    --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 /var/lib/gems/1.8/gems/pg-0.14.1 for inspection.
Results logged to /var/lib/gems/1.8/gems/pg-0.14.1/ext/gem_make.out
An error occurred while installing pg (0.14.1), and Bundler cannot continue.
Make sure that `gem install pg -v '0.14.1'` succeeds before bundling.

Я делаю $ gem install pg -v '0.14.1' Но это не помогает

Мой гемфайл

source 'https://rubygems.org'

#gem 'rails', '3.0.9'

#gem 'sqlite3', '1.3.6', :group => :development


gem 'rails', '3.2.8'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'


gem 'sqlite3'
gem 'pg'
gem 'taps'

gem 'json'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer', :platforms => :ruby

  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'


#group :production do
  #gem 'pg'
#end
#group :development do
  #gem 'sqlite3'
#end

gem_make.out

/usr/bin/ruby1.8 extconf.rb 
checking for pg_config... yes
Using config values from /usr/bin/pg_config
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
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=/usr/bin/ruby1.8
    --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

mkmf.log

find_executable: checking for pg_config... -------------------- yes

--------------------

find_header: checking for libpq-fe.h... -------------------- no

"gcc -E -I. -I/usr/lib/ruby/1.8/i686-linux -I. -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -I -fno-strict-aliasing -g -g -O2  -fPIC    conftest.c -o conftest.i"
conftest.c:1:22: fatal error: libpq-fe.h: No such file or directory
compilation terminated.
checked program was:
/* begin */
1: #include <libpq-fe.h>
/* end */

--------------------

Помоги мне, пожалуйста. Спасибо.

Извините за этот текст. В вашем сообщении мало контекста для объяснения разделов кода; пожалуйста, объясните ваш сценарий более четко.


person Arthur Yakovlev    schedule 26.10.2012    source источник
comment
Как вы установили PostgreSQL?   -  person Stefan    schedule 26.10.2012
comment
возможный дубликат Не удается найти клиентскую библиотеку PostgreSQL (libpq)   -  person skolima    schedule 26.10.2012
comment
возможный дубликат не может найти заголовок libpq-fe.h при попытке установить pg gem   -  person iconoclast    schedule 25.01.2014


Ответы (16)


Просто сделай это

$ sudo apt-get install libpq-dev
person Arthur Yakovlev    schedule 26.10.2012
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 уже является самой новой версией. - 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
Великолепно! Приложение, которое я компилировал, также нуждалось в явном указании пути к libpq-fe.h с --with-cflags=-I/usr/include/postgresql на случай, если кто-то еще столкнется с тем же. - person Ben Johnson; 16.11.2016
comment
Для тех из вас, кто интересуется, что означает libpq-dev: он содержит минимальный набор PostgreSQL_ исполняемых файлов и заголовков, необходимых для создания сторонних приложений для PostgreSQL_. - person IronMan007; 05.06.2017
comment
для Amazon linux ‹code›yum install libpqxx-devel‹/code› устраняет проблему - person ramesh.mimit; 13.03.2018
comment
Это то, что в конечном итоге сработало для меня, или, по крайней мере, версия для Mac, то есть brew install libpq. Затем мне также пришлось brew link --force libpq добиться успешного завершения gem install pg. - person Scott Schupbach; 29.01.2020
comment
В Ubuntu, в C++, вы можете использовать #include <postgresql/libpq-fe.h> вместо #include <libpq-fe.h>. - person kHarshit; 09.11.2020

Ответ на этот вопрос содержится в Can' не находит заголовок libpq-fe.h при попытке установить pg gem

В зависимости от вашей среды:

  • Mac: brew install postgresql
  • Убунту: sudo apt-get install libpq-dev
  • РЭЛ: yum install postgresql-devel

Затем снова запустите gem install pg

person Phil    schedule 23.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
Привет, Майкл, я не уверен, что смогу ответить на ваш вопрос, потому что я не знаком с Ubuntu, но вы можете проверить ответ Майкла Дюрранта здесь: stackoverflow.com/a/8887801/2484523 - person Phil; 20.01.2016
comment
Работал на Red Hat EL7. У меня отсутствовал заголовочный файл во время установки Perl DBD::Pg. - person Marcus; 19.02.2018
comment
Это ответ для капли CentOS в Digital Ocean. postgresql-devel необходимо установить. - person David Gay; 04.07.2018
comment
В CentOS6 'sudo yum install libpq*' установил правильные зависимости для успешной установки gem install pg. - person lowly_junior_sysadmin; 03.08.2018
comment
Для тех из вас, кто столкнулся с этим, но также обратите внимание, что libpq5 уже является самой новой версией. когда вы пытаетесь установить, попробуйте sudo apt-get remove libpq-dev, а затем установите его снова. Работал на меня. - person bplittle; 23.03.2021

Попробуй это:

  1. варить установить postgresql
  2. драгоценный камень установить стр
  3. пакетная установка
person Karol    schedule 04.11.2013

В системах Fedora/RHEL это помогло:

sudo yum install libpqxx-devel
person nicolasochem    schedule 01.02.2015
comment
Почему пишет: Нет доступного пакета libpqxx-devel. - person itsji10dra; 20.07.2016
comment
список yum libpq*, за которым следует yum install libpqxx-devel.x86_64 - person erichfw; 02.09.2016

  • Итак: Убунту
  • Язык программирования: C

$ sudo apt-get install libpq-dev

В моем случае я неправильно указал путь к каталогу. Так:

От кого: gcc -o lib_version lib_version.c -I/usr/include/postgresql -lpq -std=c99

To: gcc -o lib_version lib_version.c -I /usr/include/postgresql -lpq -std=c99

GL

person Braian Coronel    schedule 05.10.2019

Для Amazon Linux (AWS):

sudo yum install postgresql-devel

затем снова запустите команду

person Gaurav Ragtah    schedule 03.04.2019

Для Alpine Linux: вы можете добавить libpq-fe.h с помощью:

apk add postgresql-dev
person Alter Lagos    schedule 09.09.2019

В 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

У меня была эта проблема с сервером Jenkins на Amazon AMI.

$ pg_config | grep VERSION
VERSION = PostgreSQL 9.4.9

Затем в зависимости от того, какая версия вам нужна, вы можете установить требуемую библиотеку

$ sudo yum list postgresql* | grep devel
postgresql92-devel.x86_64               9.2.18-1.59.amzn1          @amzn-main
postgresql94-devel.x86_64               9.4.9-1.67.amzn1           @amzn-main
postgresql8-devel.x86_64                8.4.20-5.52.amzn1          amzn-main
postgresql93-devel.x86_64               9.3.14-1.62.amzn1          amzn-main
postgresql95-devel.x86_64               9.5.4-1.71.amzn1           amzn-main

Тогда можно просто установить соответствующую версию, в моем случае для версии 9.4:

sudo yum install postgresql94-devel
person Justin Fortier    schedule 08.12.2016
comment
Ах! Отлично. Конкретная версия (9.6) также была моим препятствием на пути к AMI. - person DaveGauer; 14.06.2018

Это происходило при использовании capistrano при развертывании моего приложения в дистрибутиве centos7. По-видимому, gem требует некоторых файлов заголовков, которые можно разрешить, установив правильный пакет разработки.

Я исправил это, запустив sudo yum search postgres | grep devel, и нашел правильный пакет для моей установки postgres, которая была 10.

Затем просто запустите sudo yum install postgresql10-devel и эврика!

person JGutierrezC    schedule 14.10.2019
comment
Вы спасли мой день! Поиск правильной версии для разработки действительно помогает! - person HoangLM; 24.09.2020

попробуй это:

sudo apt-get install libpq-dev
gem install pg 

были бы работы!

person Javid Dadashkarimi    schedule 22.06.2013

На Mac убедитесь, что ваш postgres связан. Вы можете сделать это по

brew link --overwrite postgresql

Это решило проблему для меня.

person Ashkinas    schedule 03.05.2016

Я использую Убунту-16. И я использую метод, показанный здесь: https://www.postgresql.org/download/linux/ubuntu/ для установки postgresql-9.6; И я использую "sudo apt-get install libpq-dev" для установки devlib. Но это все равно не работает. Поэтому я использую метод ln для установки программной ссылки, вот он: sudo ln -s /usr/include/postgresql/libpq-fe.h /usr/include/; sudo ln -s /usr/include/postgresql/postgres_ext.h /usr/include/ И я наконец решаю проблему.

person lxc    schedule 26.07.2017

brew install postgresql работал на меня.

Установка postgresql выдавала еще одну ошибку

Error: The following directories are not writable by your user: /usr/local/lib/pkgconfig /usr/local/share/info /usr/local/share/man/man3

Эта ошибка была исправлена ​​путем предоставления доступа к указанным каталогам текущему пользователю.

sudo chown -R $(whoami) (path)

person defcon    schedule 05.10.2018

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

sudo gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
person rassom    schedule 27.12.2015

Если вы установили postgresql на MacOS через Homebrew

brew install postgresql@95 # 9.5 is the version needed in my project

вам может понадобиться найти pg_config в зависимости от вашей версии libpq

моему проекту требовалась более старая версия pg.

gem install pg -v '0.20.0' -- --with-pg config=/usr/local/Cellar/libpq/13.1/bin/pg_config
person lacostenycoder    schedule 07.02.2021