Pregunta No se puede encontrar el encabezado 'libpq-fe.h al intentar instalar la gema pg


Estoy usando la versión previa de Ruby on Rails 3.1. Me gusta usar PostgreSQL, pero el problema es instalar el pg joya. Me da el siguiente error:

$ 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

¿Cómo resuelvo este problema?


622
2018-05-18 06:11


origen


Respuestas:


Parece que en Ubuntu ese encabezado es parte del libpq-dev paquete (al menos en las siguientes versiones de Ubuntu: 11.04 (Natty Narwhal), 10.04 (Lucid Lynx), 11.10 (Ocelot onírico), 12.04 (Preciso Pangolin), 14.04 (Trusty Tahr) y 18.04 (Castor biónico)):

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

Intenta instalar libpq-dev o su equivalente para su sistema operativo:

  • Para sistemas Ubuntu: sudo apt-get install libpq-dev
  • En Red Hat Linux (RHEL) sistemas: yum install postgresql-devel
  • Para Mac Homebrew: brew install postgresql
  • Para Mac MacPorts PostgreSQL: gem install pg -- --with-pg-config=/opt/local/lib/postgresql[version number]/bin/pg_config
  • por OpenSuse: zypper in postgresql-devel
  • por ArchLinux: pacman -S postgresql-libs

996
2017-12-09 22:30



En Mac OS (previamente Mac OS X y OS X), utilizar Homebrew para instalar los encabezados adecuados:

brew install postgresql

y luego corriendo

gem install pg

Deberia trabajar.


126
2018-01-16 23:34



También había intentado hacer gem install libpq-dev, pero recibí este error:

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

Sin embargo, encontré esa instalación con sudo apt-get (que trato de evitar usar con Ruby on Rails) funcionó, es decir

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

entonces pude hacer

gem install pg

sin problemas


111
2018-01-12 06:52



Podría resolver esto de otra manera. No encontré la biblioteca en mi sistema. Por lo tanto, lo instalé usando una aplicación del sitio web principal de PostgreSQL. En mi caso (OS X) encontré el archivo en /Library/PostgreSQL/9.1/include/ una vez que la instalación terminó También puede tener el archivo en otro lugar dependiendo de su sistema si ya tiene instalado PostgreSQL.

Gracias a este enlace en cómo agregar una ruta adicional para la instalación de la gema, Podría apuntar la gema a la lib con este comando:

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

Después de eso, funciona, porque ahora sabe dónde encontrar la biblioteca que falta. Simplemente reemplace la ruta con la ubicación correcta para su libpq-fe.h


40
2018-03-02 01:51



No se puede encontrar el encabezado libpq-fe.h

tuve éxito en CentOS 7.0.1406 ejecutando los siguientes comandos:

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

Alternativamente, puedes configurar el bundler para que siempre se instale pg con estas opciones (útil para ejecutar bundler en entornos de implementación),

  • bundle config build.pg --with-pg-config=/usr/pgsql-9.4/bin/pg_config

23
2018-04-10 09:13



por CentOS 6.4,

yum install postgresql-devel
gem install pg

¡funcionado bien!


20
2018-01-08 09:36



En Mac OS X, ejecute así:

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

***/path/to/pg_config*** es camino a pg_config


12
2017-07-18 18:18



En mi caso, era un paquete postgresql-server-dev-8.4 (Estoy en Ubuntu 11.04 (Natty Narwhal), 64 bits).


12
2017-10-19 16:53