rails proyecto postgres new myapp datos crear configurar ruby-on-rails ruby-on-rails-3 postgresql rails-postgresql pg

ruby on rails - proyecto - No se puede encontrar el encabezado ''libpq-fe.h cuando se intenta instalar pg gem



postgresql ruby on rails windows (30)

Estoy usando la versión previa de Ruby on Rails 3.1. Me gusta usar PostgreSQL, pero el problema es instalar la gema pg . 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?


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 , puede configurar bundler para que siempre 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

Acabo de tener esto en OSX ejecutando brew y [email protected] .

Mi solución fue esta:

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


Bajo CentOS 6.5 (Squeeze) creé un archivo:

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

con contenido:

pathmunge /usr/pgsql-9.3/bin

Tenga en cuenta que aquí debe configurar su ruta de PostgreSQL con el archivo pg_config. Puedes encontrar esto con el comando:

$ sudo find / -iname pg_config

Guarda el archivo:

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

e intenta ejecutar tu comando otra vez.

Nota: Cada vez que cambie la configuración de Bash , cambiando la configuración de profile.d, debe volver a cargar Bash.


En OS X 10.9 (Mavericks), brew-installed postgresql , y luego tuve que rvm reinstall mi Ruby. Ahora estoy feliz :)


En Debian 7.0, 64 bits (Wheezy), simplemente ejecute:

sudo apt-get install libpq-dev

Después de instalar con éxito libpq-dev, ejecute:

bundle install


En macOS (anteriormente Mac OS X y OS X ), use Homebrew para instalar los encabezados adecuados:

brew install postgresql

y luego corriendo

gem install pg

Deberia trabajar.


En CentOS, libpq-dev package usando el siguiente comando

yum install postgresql-devel

La ejecución de gem install pg devolvió el mismo error que " No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config ".

Instalar la gema de la siguiente manera resolvió mi problema

gem install pg -- --with-pg-config=/usr/pgsql-x.x/bin/pg_config


En FreeBSD (9.1) el paquete necesario es / usr / ports / database / postgresql-server * que, cuando se instale, también instalará el archivo de encabezado requerido que hace que la instalación de gemas de "pg" falle. Esta respuesta me ayudó a encontrar la solución, pero la diferencia en los nombres de los paquetes requería un poco de búsqueda.

¡Esperamos que esto ayude a alguien a evitar un poco de rascarse la cabeza cuando busca el paquete "-dev" en un sistema FreeBSD!


En Mac OS X ejecuta así:

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

***/path/to/pg_config*** es la ruta a pg_config


En Ubuntu, instale el "libpq-dev" para deshacerse de este problema.

sudo apt-get install libpq-dev


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


En una Mac, lo resolví usando este código:

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


Encontré esta respuesta, y fue la única que funcionó para mí (Mac OS), después de investigar durante dos días:

$ 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...

Ver pregunta de desbordamiento de pila No se puede encontrar la biblioteca del cliente PostgreSQL (libpq) .


Estaba teniendo un problema similar, y esto me lo arregló:

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

Fuente:

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


Estoy ejecutando Postgres.app en una Mac y tuve que

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

primero. Entonces

bundle install

trabajó para mi.


Finalmente resolví este problema, pero no usé los métodos descritos anteriormente.

Al usar brew install postgresql , descubro que ya se había instalado, pero no se había vinculado.

  1. Averigüe dónde está instalado PostgreSQL y elimínelo,

  2. Luego brew install postgresql nuevo,

  3. brew link postgresql

  4. gem install pg


La respuesta correcta para los usuarios de Mac con Postgres.app es compilar contra el libpq proporcionado con ese paquete. Por ejemplo, con la versión 9.4 (vigente a partir de este escrito), todo lo que necesita es:

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

Esto mantendrá su pg gem sincronizada con exactamente la versión de PostgreSQL que ha instalado. Instalar algo de Homebrew es un desperdicio en este caso.


La ubicación de libpq-fe.h depende de dónde se encuentre su instalación de PostgreSQL (que depende de cómo la instaló). Utilice locate ( http://en.wikipedia.org/wiki/Locate_%28Unix%29 ) para encontrar el archivo libpq-fe.h en su máquina. Si existe, estará en el directorio de include de su instalación de PostgreSQL.

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

El directorio bin , que contiene pg_config , estará en el mismo directorio que el directorio de include . Como sugiere el error, use la opción --with-pg-config para instalar la gema:

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

Tenga en cuenta que es posible que deba ejecutar updatedb si nunca ha utilizado locate o si no ha actualizado desde la instalación de PostgreSQL.


Para CentOS 6.4,

yum install postgresql-devel gem install pg

¡funcionado bien!


Para AltLinux el paquete postgresqlx.x-devel (en mi caso postgresql9.5-devel ) debe estar instalado:

apt-get install postgresql9.5-devel


Para MacOS sin instalar el servidor PostgreSQL:

brew install libpq gem install pg -- --with-pg-config="/usr/local/Cellar/libpq/9.6.6/bin/pg_config"


Parece que en Ubuntu ese encabezado es parte del paquete libpq-dev (al menos en las siguientes versiones de Ubuntu: 11.04 (Natty Narwhal), 10.04 (Lucid Lynx), 11.10 (Oneiric Ocelot), 12.04 (Precise Pangolin), 14.04 ( Trusty Tahr) y 18.04 (Bionic Beaver)):

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

Así que intente instalar libpq-dev o su equivalente para su sistema operativo:

  • Para sistemas Ubuntu: sudo apt-get install libpq-dev
  • En los sistemas Red Hat Linux (RHEL): 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
  • Para OpenSuse : zypper in postgresql-devel
  • Para ArchLinux : pacman -S postgresql-libs

Podría resolver esto de otra manera. No encontré la biblioteca en mi sistema. Así 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 /Library/PostgreSQL/9.1/include/ la instalación. También puede tener el archivo en otro lugar dependiendo de su sistema si ya tiene instalado PostgreSQL.

Gracias a este enlace sobre cómo agregar una ruta adicional para la instalación de gemas , podría señalar la gema a la biblioteca 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


Recientemente me actualicé a Mac OS X v10.10 (Yosemite) y estaba teniendo dificultades para construir la gema pg .

El error reportado fue el típico:

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

Mi solución fue gem uninstall pg y luego bundle update pg para reemplazar la gema con la última. Hice la brew update; brew upgrade brew update; brew upgrade después de la instalación de Yosemite para obtener las últimas versiones de los paquetes que había instalado anteriormente.


Resolví esto instalando el paquete ''postgresql-common''. Este paquete proporciona el binario pg_config que probablemente sea lo que te faltaba.


Solo para que conste:

La aplicación Ruby on Rails 4 en OS X con PostgresApp (en este caso se necesita la versión 0.17.1 - una especie de proyecto antiguo):

gem install pg -v ''0.17.1'' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config


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

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

Sin embargo, encontré que la 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


Tuve el mismo problema en Amazon Linux. Pude encontrar el encabezado libpq-fe.h , pero de alguna manera no funcionó.

Provino de las diferentes versiones de los paquetes que se instalaron a través de los diferentes usuarios en la máquina. PostgreSQL 9.2 y PostgreSQL 9.3 fueron instalados. Por lo tanto, asegúrese de su versión de PostgreSQL antes de incluir las bibliotecas.

Para mí, la línea de comando mágica era:

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

Fuente: Guía casi idiota para instalar PostgreSQL 9.3, PostGIS 2.1 y pgRouting con Yum


Tuve el mismo problema en Mac OS, pero instalé la gema PostgreSQL fácilmente usando lo siguiente en un terminal:

ARCHFLAGS="-arch x86_64" gem install pg

(Instalé PostgreSQL primero con brew install postgresql .)


Una respuesta más general para cualquier distribución basada en Debian (que incluye Ubuntu) es la siguiente. Primero, instale el paquete apt-file ejecutándose como root:

apt-get install apt-file

Esto le permite buscar paquetes que contengan un archivo. Luego, actualice su base de datos usando

apt-file update

(Esto se puede ejecutar como usuario normal). Luego, busca el encabezado faltante usando:

apt-file search libpq-fe.h

En mi máquina, esto da:

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

¡Ahí tienes!