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. If
la 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 link
paso 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_config
gem install pg -- --with-pg-config=/Applications//Postgres.app/Contents/Versions/9.3/bin/pg_config
Use brew para obtener
postgresql
Compruebe 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
pg
gema confuente
ls /usr/local/Cellar/postgresql/9.*/bin/pg_config
para 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_config
fuente
Si tiene homebrew, simplemente escriba:
fuente
gem install pg
Aquí 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_config
ruta. 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-config
en el archivo de configuración de Bundler:/Users/<your_user>/.bundle/config
para hacer su vida más fácil.Luego corre de
bundle install
nuevo.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 pg
funcione (en lugar de requerir la--with-pg-config
bandera).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_config
la 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 install
Recibí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
brew
instalado ruby y postgres . Estos son los siguientes pasos para asegurarse:ruby
no esté instalada con la--universal
bandera.--universal
cuál era la raíz final del problema.postgresql
correctamente con los comandosinitdb
ycreatedb
(busque en otro lugar los pasos para hacer esto).Xcode
(opcional) ycommand line tools
esté instalado; en la terminal:xcode-select --install
sudo xcodebuild -license
(si Xcode está instalado) o abra la aplicación y acepte el acuerdo de licencia.which ruby
,which gem
ywhich postgres
debe mostrarse/usr/local/bin/ruby
,/usr/local/bin/gem
y con/usr/local/bin/postgres
respeto.En la terminal ejecute:
gem install pg -- --with-pg-config=/usr/local/bin/pg_config
env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/bin/pg_config
Asegurándome de que todos estos pasos estén satisfechos, pude resolver los siguientes errores:
ruby.h
error de encabezadodeveloper tools installed first
errorfuente
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] man7
Y 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 extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
...
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config
Como 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:$PATH
luego
bundle
Eso es.
fuente
Postgres 9.4:
fuente