Se produjo un error al instalar pg (0.17.1) y Bundler no puede continuar


87

Acabo de instalar Rails 4.0.2y al crear una nueva aplicación, en la etapa de paquete obtengo:

Installing pg (0.17.1) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/Dee/.rvm/rubies/ruby-2.0.0-p247/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.

¿Cómo puedo solucionar esto?


1
Es posible que desee agregar una etiqueta osx. La solución parece que puede estar relacionada específicamente con su sistema operativo.
— Vince

Es posible que desee visitar. stackoverflow.com/questions/3116015/… . Espero que una de esas soluciones ayude
— Yana Agun Siswanto

Respuestas:


144

Estoy en una Mac con Mavericks. Mi solución fue instalar Postgres .

Y luego, en la terminal, instale usando homebrew con la configuración:

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config

Nota: Esta respuesta se ha editado para usar el latestenlace simbólico que se incluye actualmente en las versiones de envío de la aplicación Postgres.

Versiones anteriores sugeridas:

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

Sí, el mío también estaba en un lugar diferente. Gracias por la respuesta.
— Deekor

Bob correcto, la versión de postgresapp en la que esto funcionó para mí, era la versión 9.2.2.0, por lo que deben haber cambiado esta ubicación en la versión 9.3.
— Robertibiris

1
Y ahora, a partir del 22/1/15 estamos viendo la versión 9.4, es bueno ver que la mantienen actualizada - "gem install pg - --with-pg-config = / Applications / Postgres. app / Contents / Versions / 9.4 / bin / pg_config "
— corprew

3
Tenía prisa y me perdí la parte de esta respuesta que dice "instalar usando home-brew". Esta respuesta funcionó para mí después de que lo hicebrew update; brew install postgres
— Dennis

6
En su solución, agregue la versión, de lo contrario se instalará la última gema de PG:gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
— user1322092


21

raíz de la aplicación:

  1. actualización de preparación
  2. brew instalar postgres
  3. gem install pg - --with-pg-config = / usr / local / Cellar / postgresql / 9.3.4 / bin / pg_config
  4. instalación del paquete
  5. ln -sfv /usr/local/opt/postgresql/*.plist ~ / Library / LaunchAgents
  6. launchctl load ~ / Library / LaunchAgents / homebrew.mxcl.postgresql.plist
  7. createuser -s -r postgres
  8. rake db: create: all
  9. rake db: migrar
  10. rieles s

NOTA: reemplace el número de versión en el paso 3 si es necesario.


10

Respuesta que funcionaba anteriormente con una versión anterior

Lo instalé bajo mac OSX Mavericks, teniendo instalada la aplicación postgres (Versión 9.2.2.0) de www.postgresapp.com . El problema subyacente fue simplemente que, dado que postgres se instaló a través de la aplicación, el archivo de configuración reside en una ubicación que no es la predeterminada cuando se instala sin postgressapp. así que necesitamos decirle a gem dónde encontrar este archivo por:

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config

Espero eso ayude


1
Esta fue mi solución (OSX)
— raulriera

Si esto no funciona para nadie, para 9.3 el archivo de configuración se ha movido - vea la respuesta aceptada.
— Deekor

5

Si falla la instalación de gemas pg, intente con el siguiente comando:

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config

... de la documentación de PostgreSQL.app


2
Dado que la aplicación oficial cambió recientemente el nombre a "Postgres93.app", el comando debería ser: env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
— Blackcoat

1
para mí funcionó con: env ARCHFLAGS="-arch x86_64" gem install pg
— dnlcrl

4

Parece que no tienes instalado PostgreSQL. La pggema requiere algunos encabezados de PostgreSQL para compilar la extensión nativa.


¿Qué tal tu configuración de Ruby / Bundler? ¿Estás usando Mac OS X o Linux? y si está usando Mac OS X, ¿instaló PostgreSQL a través de homebrewo PostgreSQL.app?
— tungd

Estoy en una mac. Lo instalé a través de la aplicación
— Deekor

Tengo 0.17.0 instalado. ¿Algún daño al usar eso con rieles 4?
— Deekor

Luego intente ejecutar bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_configy bundlevuelva a ejecutar . Ajuste la ruta de configuración si instala la aplicación en ~/Applicationlugar de/Application
— tungd

3

Tuve que combinar todo y usar

sudo env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config

3

Si está utilizando algo que no sea Postgres en desarrollo y Postgres solo en producción, puede agregar la gema pg a su archivo de gemas así ...

group :production do
  gem 'pg',             '0.17.1'
end

Entonces usa bundle install --without production


3

Para usuarios de CentOS:

sudo yum install postgresql-devel

y

gem install pg

1

Acabo de configurar un nuevo Macbook Pro que fue construido previamente con Catalina.

Lo que funcionó para mí:

  1. Instale Postgres desde aquí: https://postgresapp.com/
  2. Agregue export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"a su .zshenv, ya que Z shell es ahora el terminal predeterminado.

0

Después de instalar Postgres tuve que ejecutar el siguiente comando

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config

¡Después de este paquete, la instalación funciona muy bien!

Espero eso ayude


0

La forma en que logré superar ese error fue:

  • cd a la carpeta de la aplicación y luego configure la versión de ruby ​​localmente. Estoy usando ruby ​​2.1.2.

rbenv local 2.1.2

  • en lugar de simplemente ejecutar la instalación del paquete, instale las gemas en el proveedor / paquete

instalación del paquete: proveedor de ruta / paquete

Esto lo hizo por mí.


0

Necesitaba usar sudo

sudo gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.5/bin/pg_config

0

Tenía un problema con Amazon y no podía usar apt-get. Por mi trabajo:

    sudo yum install postgresql-devel

entonces:

    bundle install

e intenta de nuevo:

    rails serve

0

Si lo instaló a través de Homebrew; gem install pg -- --with-pg-config=/usr/local/bin/pg_config. Funciona con Ruby 2.4.6 y pg 0.20.0.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.