Estoy intentando instalar la gema pg para volver a trabajar con mis proyectos de rieles. Pero me sale este error:
Construyendo extensiones nativas. Esto podría llevar un tiempo ... ERROR: Error al instalar pg: ERROR: No se pudo construir la extensión nativa de gemas.
/Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb checking for pg_config... no No pg_config... trying anyway. Ifla construcción falla, inténtelo de nuevo con --with-pg-config = / path / to / pg_config comprobando libpq-fe.h ... no No se puede encontrar el encabezado 'libpq-fe.h * extconf.rb failed * No se pudo crear Makefile debido a alguna razón, probablemente la falta de las bibliotecas y / o encabezados necesarios. Consulte el archivo mkmf.log para obtener más detalles. Es posible que necesite opciones de configuración.
Opciones de configuración proporcionadas: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include = $ {opt-dir} / include --with-opt-lib - sin-opt-lib = $ {opt-dir} / lib --with-make-prog --without-make-prog --srcdir =. --curdir --ruby = / Users / jeanosorio / .rvm / rubies / ruby-2.0.0-p247 / bin / ruby --with-pg --without-pg --with-pg-config --without-pg -config --with-pg_config --without-pg_config --with-pg-dir --without-pg-dir --with-pg-include --without-pg-include = $ {pg-dir} / include - -with-pg-lib --without-pg-lib = $ {pg-dir} /
Los archivos de gemas permanecerán instalados en /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0 para su inspección. Resultados registrados en /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0/ext/gem_make.out
Intenté todo lo que encontré en stackoverflow pero sigo recibiendo este error.
Si intento instalar postgresql usando brew, obtengo la siguiente advertencia:
Advertencia: postgresql-9.2.4 ya está instalado, simplemente no está vinculado
Si trato de vincular
brew link postgresql Vinculando /usr/local/Cellar/postgresql/9.2.4 ... Advertencia: No se pudo vincular postgresql. Desvinculando ...
Error: No se pudo vincular el archivo simbólico: /usr/local/Cellar/postgresql/9.2.4/share/man/man7/WITH.7 / usr / local / share / man / man7 no se puede escribir. Deberías cambiar sus permisos.
Ayuda por favor
NOTA: Ya instalé las herramientas de línea de comandos para mavericks.
Si desinstalo usando Homebrew e intento instalarlo de nuevo, aparece este error:
==> Descargando http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2
################################################ ################ 100.0%==> Archivo de parcheo de parche src / pl / plpython / Archivo de parche de Makefile contrib / uuid-ossp / uuid-ossp.c ==> ./configure --prefix = / usr / local / Cellar / postgresql / 9.2.4 - datadir = / usr / local / Cellar / postgresql / 9.2.4 / share / postgresql --docdir = / usr / local / Cellar / p ==> make install-world ==> Advertencias
Notas de compilación
Si las compilaciones de PostgreSQL 9 fallan y tiene instalada la versión 8.x, es posible que primero deba eliminar la versión anterior. Ver:
https://github.com/mxcl/homebrew/issues/issue/2510Crear / actualizar una base de datos
Si esta es su primera instalación, cree una base de datos con: initdb / usr / local / var / postgres -E utf8
Para migrar datos existentes de una versión principal anterior (anterior a 9.2) de PostgreSQL, consulte:
http://www.postgresql.org/docs/9.2/static/upgrading.htmlCargando extensiones
De forma predeterminada, Homebrew crea todas las extensiones Contrib disponibles. Para ver una lista de todas las extensiones disponibles, desde la línea de comando psql, ejecute:
SELECT * FROM pg_available_extensions;Para cargar cualquiera de los nombres de extensión, navegue hasta la base de datos deseada y ejecute: CREATE EXTENSION [nombre de extensión];
Por ejemplo, para cargar la extensión tablefunc en la base de datos actual, ejecute: CREATE EXTENSION tablefunc;
Para obtener más información sobre el comando CREATE EXTENSION, consulte:
http://www.postgresql.org/docs/9.2/static/sql-createextension.html Para obtener más información sobre las extensiones, consulte:
http://www.postgresql.org/ docs / 9.2 / static / contrib.htmlOtro
Algunas máquinas pueden requerir el aprovisionamiento de memoria compartida:
http://www.postgresql.org/docs/9.2/static/kernel-resources.html#SYSVIPC Al instalar la gema postgres, se recomienda incluir ARCHFLAGS: ARCHFLAGS = "- arch x86_64" gema instalar pgPara instalar gemas sin sudo, consulte la wiki de Homebrew.
Para iniciar postgresql al iniciar sesión: ln -sfv /usr/local/opt/postgresql/*.plist ~ / Library / LaunchAgents Luego para cargar postgresql ahora: launchctl load ~ / Library / LaunchAgents / homebrew.mxcl.postgresql.plist O , si no quiere / necesita launchctl, puede ejecutar: pg_ctl -D / usr / local / var / postgres -l /usr/local/var/postgres/server.log start Advertencia: No se pudo vincular postgresql. Desvinculando ... Error: El
brew linkpaso no se completó correctamente La fórmula creada, pero no está enlazada simbólicamente a / usr / local Puede intentar nuevamente usando `brew link postgresql '==> Resumen 🍺 /usr/local/Cellar/postgresql/9.2 .4: 2831 archivos, 38M, construido en 4.9 minutos
SOLUCIÓN:
Ejecuto este comando para cambiar el permiso de la carpeta:
sudo chown jeanosorio / usr / local / share / man / man7
Luego
brew link postgresql Vinculando /usr/local/Cellar/postgresql/9.3.1 ... 421 symlinks creados
Y finalmente:
sudo ARCHFLAGS = "- arch x86_64" gema instalar pg
Obteniendo: pg-0.17.0.gem (100%) Construyendo extensiones nativas. Esto podría llevar un tiempo ... Se instaló correctamente pg-0.17.0
fuente

export CONFIGURE_ARGS="with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config"gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_configgem install pg -- --with-pg-config=/Applications//Postgres.app/Contents/Versions/9.3/bin/pg_configUse brew para obtener
postgresqlCompruebe que tiene pg_config en la preparación instalada. Encontré el mío en
Consultar a través de:
Una vez hecho esto, instale la
pggema confuente
ls /usr/local/Cellar/postgresql/9.*/bin/pg_configpara encontrar el camino real y combinadoenv ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=$(ls /usr/local/Cellar/postgresql/9.*/bin/pg_config)No pude instalar Postgres a través de MacPorts. En su lugar, instalé Postgress.app . y llamó
Nota: en las versiones más recientes (en 9.3 al menos) la ruta es en realidad:
/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_configfuente
Si tiene homebrew, simplemente escriba:
fuente
gem install pgAquí hay otra alternativa en caso de que desee utilizar el instalador de postgresql directamente. Hay un par de obstáculos que debes superar para empezar después de actualizar a los inconformistas. Esto es lo que hice:
Primero instale las herramientas de línea de comandos de xcode:
Descargue e instale la última versión de PostgreSQL (9.3.1), en mi caso acabo de usar el instalador gráfico. Aquí está el enlace a la página de descargas:
Simplemente elija todos los valores predeterminados que le ofrece. En mi caso, instaló postgres en el siguiente directorio, si lo instaló en un directorio diferente, solo recuerde la ruta que eligió, porque la necesitará en breve.
Si ahora intenta instalar la última gema pg (0.17.0), deberá pasar un par de opciones en la línea de comandos. Esto es lo que usé:
Si instaló postgres en una ubicación diferente, deberá corregir la ruta al archivo pg_config.
Si se queja de un archivo 'libpq.5.dylib' faltante mientras intenta instalar la gema pg, deberá crear un enlace simbólico que apunte a la ubicación real de este archivo. Postgres lo está buscando en su directorio / usr / local / lib / así que cree un enlace simbólico allí y rediríjalo a su ubicación real. En mi caso tuve que ejecutar:
Una vez que haya hecho eso, vuelva a intentar instalar la gema y, con suerte, funcionará para usted de la misma manera que lo hizo para mí.
fuente
Para mí, en Yosemite, no necesitaba especificar la
pg_configruta. Lo siguiente lo hizo.Parece que la bandera de la arquitectura es la clave.
fuente
En mi caso (necesitaba PG 0.16.0 en Mavericks), instalé postgresql a través de MacPorts
y entonces
Para la última versión, debe deducir -v '0.16.0'
Si tiene Homebrew instalado, no instale MacPorts antes de leer acerca de su coexistencia.
fuente
Coloque lo que falta
--with-pg-configen el archivo de configuración de Bundler:/Users/<your_user>/.bundle/configpara hacer su vida más fácil.Luego corre de
bundle installnuevo.fuente
¡Funciona para mi! (Postgres 93, mac ox 10.9.1) 1. descargar @ http://postgresapp.com/ y luego
fuente
Estuve atascado en la instalación de mi paquete durante 3 días. Intenté todo, como agregar env ARCHFLAGS = "- arch x86_64" gem install pg - --with-pg-config = / usr / local / Cellar / postgresql / 9.3.5_1 / bin / pg_config
Pude ver que pg gem se instalaba después de este comando, pero aún así no se instalaba desde la instalación del paquete, lo cual fue una molestia porque no sabía qué escribir en Gemfile excepto gem 'pg'
Lo que finalmente funcionó para mí fue encontrar que mi pg_config estaba en /Library/PostgreSQL/9.3/bin/pg_config y, por defecto, la instalación del paquete Gemfile se ve en / usr / local / bin / pg_config
Simplemente ejecuté el siguiente comando y sucedió la magia. bundle config build.pg --with-pg-config = / Library / PostgreSQL / 9.3 / bin / pg_config
fuente
En mi caso, no funcionó si no especificas las banderas del arco, OS X 10.10.3 y postersApp 9.4
fuente
La forma más fácil para mí de resolver esto fue usar Postgres.app y configurar mi env vars para que
gem install pgfuncione (en lugar de requerir la--with-pg-configbandera).Usando Homebrew Cask ,
fuente
Esto es lo que funcionó para mí:
fuente
En mi caso, desinstalé la versión instalada a través de homebrew y cambié a Postgres.app (v9.3.4.2 en el momento de escribir este artículo).
Solo parecía funcionar al anteponer los indicadores de la arquitectura del entorno y especificar la ruta a
pg_config. Su kilometraje puede variar, por lo que esta respuesta podría ayudar con variaciones enpg_configla ubicación.Aquí está el comando final y completo que funcionó para mí:
fuente
sudo ARCHFLAGS = "- arch x86_64" gem install pg - --with-pg-config = / usr / local / bin / pg_config
fuente
ARCHFLAGS="-arch x86_64" bundle installRecibía el mismo error al ejecutar la instalación del paquete con respecto a la gema pg (usando Mac OS X Mavericks). Después de horas de investigación, encontré la solución. Instalé postgres usando homebrew
Después de instalar eso, creé una nueva aplicación de rieles usando postgres. Yo corrí
en vano (obtuvo el mismo error que la pregunta). solía
para averiguar dónde se instaló mi postgres, regresó
antes de ejecutar la instalación del paquete nuevamente, tuve que cambiar la ruta global a build.pg ejecutando lo siguiente
luego volví a ejecutar la instalación del paquete y ¡listo! Usé el postgres donde lo instaló brew.
fuente
En OS X Mavericks con la última aplicación Postgres, haga lo siguiente con privilegios de sudo
fuente
Lo que funcionó para mí en 10.9.3 con Xcode 5.1.1 fue lo siguiente:
Necesitaba pág 0.17.1
fuente
Para cualquier alma perdida que todavía tenga este problema sin resolución y tenga
brewinstalado ruby y postgres . Estos son los siguientes pasos para asegurarse:rubyno esté instalada con la--universalbandera.--universalcuál era la raíz final del problema.postgresqlcorrectamente con los comandosinitdbycreatedb(busque en otro lugar los pasos para hacer esto).Xcode(opcional) ycommand line toolsesté instalado; en la terminal:xcode-select --installsudo xcodebuild -license(si Xcode está instalado) o abra la aplicación y acepte el acuerdo de licencia.which ruby,which gemywhich postgresdebe mostrarse/usr/local/bin/ruby,/usr/local/bin/gemy con/usr/local/bin/postgresrespeto.En la terminal ejecute:
gem install pg -- --with-pg-config=/usr/local/bin/pg_configenv ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/bin/pg_configAsegurándome de que todos estos pasos estén satisfechos, pude resolver los siguientes errores:
ruby.herror de encabezadodeveloper tools installed firsterrorfuente
En primer lugar, busque la ubicación de pg_config
La respuesta es /Library/PostgreSQL/9.1/bin/pg_config en mi configuración (MAC Maverick)
Luego intente instalar algo como a continuación
gem install pg - --with-pg-config = / Library / PostgreSQL / 9.3 / bin / pg_config
si esto no funciona, intente verificar de qué manera instaló postgresql
brew / mac puerto / configuración
entonces tienes que probar la opción correspondiente a la misma.
Gracias.
RAM
fuente
Estaba con el mismo problema, esta fue la solución que encontré.
Si lo ejecuta
brew doctor, le dirá que probablemente ha instalado algo sin preparación que ha cambiado los permisos en algunas carpetas, por lo que debe volver a cambiar los permisos en esa carpeta.En el interior
/usr/local/share/man, lo que puede hacer es lo siguiente:sudo chown [yourusername] man7Y entonces:
brew link postgres¡Espero eso ayude!
fuente
De manera similar, después de instalar la 'actualización del paquete' de Mavericks, se arrojaba un error en la gema pg, que solo se usa en producción y no localmente.
Utilizo Brew para administrar mis paquetes y postgresql ya estaba instalado, pero aún recibía el error 'no pg_config'.
La solución fue simplemente 'preparar la desinstalación de postgresql', luego 'preparar la instalación de postgresql'. Después de lo cual pude ejecutar con éxito la 'actualización del paquete' de inmediato
fuente
luego
trabajado en 10.10.2
fuente
Si después de probar todo aquí todavía no se instala, intente abrir Xcode y acepte el acuerdo de licencia.
fuente
Para mí, el mensaje de error se ve así:
Installing pg 0.18.4 with native extensionsGem::Ext::BuildError: ERROR: Failed to build gem native extension....checking for pg_config... noNo pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_configComo muestra el mensaje de error, está intentando ejecutar el comando / script "pg_config". Así que agréguelo a la ruta desde donde esté su instalación de Postgres. En mi caso, lo hice:
export PATH=/Applications/Postgres.app/Contents/Versions/9.5/bin:$PATHluego
bundleEso es.
fuente
Postgres 9.4:
fuente