Instalación de PG gem en OS X-fallo en la compilación de la extensión nativa


Parece que muchos otros han tenido problemas para instalar la gema pg. Ninguna de las soluciones planteadas para otros ha funcionado para mí.

He intentado instalar la gema pg y postgres.app. La gema pg no se instalará. El primer error que obtengo es:

Se produjo un error al instalar pg (0.17.0), y Bundler no puede continuar. Asegúrese de que gem install pg -v '0.17.0' tenga éxito antes de agrupar.

El consejo de instalación sobre apuntar mi instalación de gema a la configuración de pg falla con el siguiente error mensaje (que muchos otros en este foro han encontrado):

Failed to build native extensions... Results logged to /Users/melanie/.rvm/gems/ruby-1.9.3-p448/gems/pg-0.17.0/ext/gem_make.out

No se cómo encontrar o acceder a este archivo de registro para buscar más pistas.

También recibo un mensaje de error (comando no encontrado) cuando intento usar el comando sudo apt-get install. He rastreado este foro durante las últimas 6 horas, probando cada consejo para que pg trabaje con mi proyecto rails.

No puedo encontrar consejos sobre cómo cambiar un camino, o específicamente, qué cambio se requiere. Mi which pg_config devuelve un origen de archivo. Lo he usado con un comando para instalar pg usando esa configuración. Falla.

Hay muchas personas que han tenido problemas con esto. Muchas respuestas sugieren homebrew. He tenido que quitar eso porque vomitó otros problemas.

Author: Victor, 2013-10-09

12 answers

Mismo error para mí y no lo experimenté hasta que descargué OS X 10.9 (Mavericks). Suspiro, otro dolor de cabeza de actualización del sistema operativo.

Así es como lo arreglé (con homebrew):

  • Instale otra compilación de Herramientas Xcode (escribiendo brew update en el terminal le pedirá que actualice las herramientas de compilación Xcode)
  • brew update
  • brew install postgresql

Después de eso gem install pg funcionó para mí.

 394
Author: shicholas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-03 14:19:26

Si está utilizando Ubuntu, intente instalar el siguiente archivo lib

sudo apt-get install libpq-dev

Y luego

gem install pg

Funcionó para mí.

 216
Author: sandesh kota,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-11 17:46:29

Estoy usando OS X Mavericks (versión 10.9)

Y cuando ejecuté lo anterior recibí el siguiente mensaje: Si las compilaciones de PostgreSQL 9 están fallando y tienes la versión 8.x instalado.

Así que corro el siguiente comando:

ARCHFLAGS="-arch x86_64" gem install pg

Y esto funcionó para mí, espero que esto ayude a alguien:)

 49
Author: Jon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-27 18:09:47

Ok También tuve este problema (psql es v 9.3.0 y ruby es v 2.1.2) y la solución que funcionó para mí fue establecer la configuración de bundle primero:

bundle config build.pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config

Esta respuesta finalmente me ayudó a averiguarlo: https://stackoverflow.com/a/9235107/3546680

 39
Author: paninapress,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:03:01

Probé todo durante horas, pero lo siguiente finalmente lo arregló (estoy en OS X 10.9.4):

  1. Instalar Xcode herramientas de línea de comandos (Apple Developer site)
  2. brew desinstalación postgresql
  3. instalación de brew postgresql
  4. ARCHFLAGS=" - arch x86_64 " gem install pg
 21
Author: Ali Yazdani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-26 07:57:46

Del mismo modo, después de instalar Mavericks bundle update estaba lanzando un error en la gema pg, que solo se utiliza en producción y no localmente.

Uso Brew para administrar mis paquetes y postgresql ya estaba instalado, pero todavía estaba recibiendo el error 'no pg_config'.

La solución era simplemente brew uninstall postgresql, luego brew install postgresql. Después de lo cual fui inmediatamente capaz de ejecutar con éxito bundle update.

 6
Author: Shannon Perkins,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-22 17:36:25

Paso fácil

  1. brew install postgresql
  2. gem install pg -v 'your version'
 6
Author: James Dela Cruz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-12 01:45:06

Creo que la respuesta "correcta" sería primero configurar la RUTA correctamente para Postgres.aplicación mediante la adición de lo siguiente a ~/.profile (.zshrc o ~/.zprofile si se usa ZSH):

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

Luego abra una nueva pestaña o ventana en terminal e instale la gema pg con:

ARCHFLAGS="-arch x86_64" gem install pg

Documentado aquí:

 4
Author: Matias Korhonen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-31 08:34:24

En OSX con Postgres instalado en / Aplicaciones, simplemente ejecute el siguiente comando (cambiar 0.20 & 9.4 según su versión)

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

Usted debe tener:

Construyendo extensiones nativas con: 'with with-pg-config= / Applications / Postgres.app / Contents / Versions / 9.4 / bin / pg_config' Esto podría tomar un tiempo... Instalado correctamente pg-0.20.

 4
Author: Jean-Baptiste Heren,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-24 14:08:44

Pasé un día en esto y así es como lo arreglé:

Encontré que el valor global de build.pg se estableció en: /opt/local/lib/postgresql91/bin/pg_config y ahí no fue donde se instaló postgres.

Lo arreglé con la sustitución del valor de build.pg to: bundle config build.pg --with-pg-config=/usr/local/Cellar/postgresql/9.4.4/bin/pg_config que es donde está mi instalación de postgresql.

 3
Author: HosseinToussi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-12 06:56:23

Intenta:

gem install pg -- --with-pg-config=`which pg_config`
 1
Author: Gerry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-08 11:48:33

Resuelto! Encontré falta de biblioteca para postgresql en el sistema. Solo dos pasos lo solucionaron:

1) instalación de brew postgresql 2) gem install pg

 -1
Author: user6756462,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-25 09:45:44