ruby on rails - create - Imposible instalar gema PG en mi Mac con Mavericks
postgres app ubuntu (27)
Estoy intentando instalar la gema pg para poder trabajar de nuevo 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: Error al construir la extensión nativa de la gema.
/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, intente nuevamente con --with-pg-config = / ruta / a / pg_config buscando libpq-fe.h ... no No se puede encontrar el ''libpq-fe.h encabezado * extconf.rb falló * No se pudo crear Makefile debido a alguna razón, probablemente la falta de bibliotecas y / o encabezados necesarios. Verifique el archivo mkmf.log para 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 teniendo este error.
Si intento instalar postgresql usando brew obtengo el siguiente waring:
Advertencia: postgresql-9.2.4 ya está instalado, simplemente no está vinculado
Si trato de vincular
brew link postgresql Enlazando /usr/local/Cellar/postgresql/9.2.4 ... Advertencia: No se pudo vincular postgresql. Desvincular ...
Error: No se pudo vincular el archivo: /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 comando para Mavericks.
Si desinstalo usando homebrew y trato de instalarlo de nuevo, aparece este error:
==> Descargar http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2
################################################## ################ 100.0%==> Parchear el archivo de parches src / pl / plpython / Makefile parchear el archivo 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 versiones de PostgreSQL 9 están fallando y tiene instalada la versión 8.x, es posible que deba eliminar primero 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 la 9.2) de PostgreSQL, consulte:
http://www.postgresql.org/docs/9.2/static/upgrading.htmlExtensiones de carga
Por defecto, Homebrew construye todas las extensiones Contrib disponibles. Para ver una lista de todas las extensiones disponibles, desde la línea de comando psql, ejecute:
SELECCIONAR * FROM pg_available_extensions;Para cargar cualquiera de los nombres de las extensiones, navegue a la base de datos deseada y ejecute: CREATE EXTENSION [nombre de la 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 CREAR EXTENSIÓN, consulte:
http://www.postgresql.org/docs/9.2/static/sql-createextension.html Para obtener más información sobre 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" gem install pgPara instalar gemas sin sudo, consulte la wiki de Homebrew.
Para iniciar, inicie postgresql al iniciar sesión: ln -sfv /usr/local/opt/postgresql/*.plist ~ / Library / LaunchAgents Luego, cargue 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. Desvinculación ... Error: El paso del
brew link
no se completó correctamente. La fórmula se creó, pero no se vinculó a / usr / local. Puede intentar de nuevo usando `brew link postgresql ''==> Resumen 🍺 / usr / local / Cellar / postgresql /9.2.4: 2831 archivos, 38M, integrados en 4.9 minutos
SOLUCIÓN:
Ejecuto este comando para cambiar el permiso de la carpeta:
sudo chown jeanosorio / usr / local / share / man / man7
Entonces
brew link postgresql Enlace /usr/local/Cellar/postgresql/9.3.1 ... 421 enlaces simbólicos creados
Y finalmente:
sudo ARCHFLAGS = "- arch x86_64" joya instalar pg
Obteniendo: pg-0.17.0.gem (100%) Construyendo extensiones nativas. Esto podría tomar un tiempo ... Instalado con éxito pg-0.17.0
¡Funciona para mi! (Postgres 93, mac buey 10.9.1) 1. descargar @ Postgress.app y que
gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
Antes que nada, encuentre la ubicación de pg_config
sudo find / -name "pg_config" -print
La respuesta es /Library/PostgreSQL/9.1/bin/pg_config en mi configuración (MAC Maverick)
Luego intenta instalar algo como a continuación
joya install pg - --with-pg-config = / Library / PostgreSQL / 9.3 / bin / pg_config
si esto no funciona, intente comprobar de qué manera instaló postgresql
brew / mac port / setup
entonces tienes que probar la opción relevante a la misma.
Gracias.
RAM
Aquí hay otra alternativa en caso de que quiera usar el instalador de postgresql directamente. Hay un par de aros que tienes que saltar para empezar después de actualizar a los rebeldes. Esto es lo que hice:
Primero instala las herramientas de línea de comando de xcode:
xcode-select --install
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:
http://www.enterprisedb.com/products-services-training/pgdownload#osx
Simplemente elija todos los valores predeterminados que le da. En mi caso, instaló postgres en el siguiente directorio, si lo instaló en un directorio diferente, simplemente recuerde la ruta que eligió, porque la necesitará en breve.
/Library/PostgreSQL/9.3
Si ahora intenta instalar la última joya pg (0.17.0) tendrá que pasar un par de opciones en la línea de comando. Esto es lo que utilicé:
ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config
Si instaló postgres en una ubicación diferente, deberá arreglar la ruta al archivo pg_config.
Si se queja de que falta un archivo ''libpq.5.dylib'' mientras intenta instalar la gema pg, deberá crear un enlace simbólico que apunte a la ubicación real de este archivo. Postgres lo busca en su directorio / usr / local / lib / para crear un enlace simbólico y redirigirlo a su ubicación real. En mi caso, tuve que correr:
sudo ln -s /Library/PostgreSQL/9.3/lib/libpq.5.dylib /usr/local/lib/libpq.5.dylib
Una vez que hayas hecho eso, vuelve a intentar instalar la gema nuevamente y espero que funcione para ti de la misma manera que lo hizo para mí.
Coloque la falta --with-pg-config
en el archivo de configuración de /Users/<your_user>/.bundle/config
: /Users/<your_user>/.bundle/config
para hacer su vida más fácil.
---
BUNDLE_BUILD__PG: --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
BUNDLE_BUILD__EXAMPLE_GEM: --other-configs
BUNDLE_BUILD__OTHER_EXAMPLE_GEM: --other-configs
Luego ejecute bundle install
nuevamente.
Del mismo modo, después de instalar la actualización de paquete de Mavericks, se generaba un error en la gema de pg, que solo se utiliza en producción y no localmente.
Utilizo Brew para administrar mis paquetes y postgresql ya estaba instalado, pero aún estaba obteniendo el error ''no pg_config''.
La solución fue solo ''brew uninstall postgresql'', luego ''brew install postgresql''. Después de lo cual pude ejecutar de manera exitosa la ''actualización del paquete''
En OS X Mavericks con la última aplicación Postgres, haga lo siguiente con los privilegios de sudo
env ARCHFLAGS="-arch x86_64" gem install pg -v ''0.17.1'' -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
En mi caso (necesitaba PG 0.16.0 en Mavericks), instalé postgresql a través de MacPorts
sudo port install postgresql90
y entonces
gem install pg -v ''0.16.0'' -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config
Para la última versión necesita deducir -v ''0.16.0''
gem install pg -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config
Si tiene instalado Homebrew, no instale MacPorts antes de leer sobre su coexistencia.
En mi caso, desinstalé la versión instalada a través de homebrew y cambié a Postgress.app (v9.3.4.2 en el momento de escribir este documento).
Solo pareció funcionar al anteponer las banderas de arquitectura de entorno y especificar la ruta a pg_config
. Su kilometraje puede variar, por lo que esta respuesta podría ayudar con las variaciones en la ubicación de pg_config
.
Aquí está el comando final y completo que funcionó para mí:
env ARCHFLAGS="-arch x86_64" gem install pg -- /
--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
En mi caso, no funcionó si no especificas los indicadores de arco, OS X 10.10.3 y postersApp 9.4
sudo env ARCHFLAGS="-arch x86_64" gem install pg -- /--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
Estaba con el mismo problema, esta fue la solución que encontré.
Si ejecuta brew doctor
, le dirá que probablemente ha instalado algo sin brebaje que ha cambiado los permisos en algunas carpetas, por lo que debe volver a cambiar los permisos en esa carpeta.
Dentro de /usr/local/share/man
, lo que puedes hacer es lo siguiente:
sudo chown [yourusername] man7
Y entonces:
brew link postgres
¡Espero eso ayude!
Esto es lo que funcionó para mí:
gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config
Estuve atascado en mi paquete de instalación 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 instalara después de este comando pero aún no se estaba instalando desde la instalación del paquete, lo cual fue un problema porque no sé 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 de forma predeterminada la instalación del paquete Gemfile se ve en / usr / local / bin / pg_config
Simplemente ejecuté el siguiente comando y sucedió la magia. paquete config. build.pg --with-pg-config = / Library / PostgreSQL / 9.3 / bin / pg_config
La forma más fácil para mí de resolver esto fue usar Postgres.app y configurar mis env vars, así que la gem install pg
simplemente funciona (en lugar de requerir el --with-pg-config
).
Usando Homebrew Cask ,
brew cask install postgres
echo ''export PG_HOME=/Applications/Postgres.app/Contents/Versions/latest'' >> ~/.bash_profile
echo ''export PATH="$PATH:$PG_HOME/bin"'' >> ~/.bash_profile
source ~/.bash_profile
# now it just works
gem install pg
Lo que funcionó para mí en 10.9.3 con Xcode 5.1.1 fue el siguiente:
brew update
brew install postgresql
gem install pg -v ''0.17.1''
Necesitaba la página 0.17.1
No pude instalar postgres a través de MacPorts. En cambio, instalé Postgress.app . y llamado
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
Nota: en las versiones más nuevas (al menos en 9.3), la ruta es en realidad: /Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
Obtuve 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
brew install postgres
Después de instalar eso, creé una nueva aplicación de rieles usando postgres. corrí
bundle install
fue en vano (obtuvo el mismo error que la pregunta). solía
which psql
para averiguar dónde estaba instalado mi postgres, regresó
/usr/local/bin/psql
antes de ejecutar bundle install nuevamente, tuve que cambiar la ruta global a build.pg ejecutando lo siguiente
bundle config build.pg --with-pg-config=/usr/local/bin/pg_config
luego ejecuté bundle install nuevamente y ¡listo! Usé el postgres donde lo instalé.
Para cualquier alma perdida que todavía tenga este problema sin resolución y tenga un brew
instalado ruby y postgres . Aquí están los siguientes pasos para asegurarse de:
- Asegúrate de que tu versión de
ruby
no esté instalada con la bandera--universal
.- Esto fue lo más difícil de entender, tuve
--universal
que fue la raíz final del problema.
- Esto fue lo más difícil de entender, tuve
- Asegúrese de haber inicializado correctamente
postgresql
con los comandosinitdb
ycreatedb
(busque en otro lugar los pasos para hacerlo). - Asegúrese de que
Xcode
(Opcional) y lascommand line tools
instaladas; en la terminal:-
xcode-select --install
-
sudo xcodebuild -license
(si Xcode está instalado) o abra la aplicación y acepte el acuerdo de licencia. - Reiniciar la computadora
-
-
which ruby
,which gem
ywhich postgres
debería mostrar/usr/local/bin/ruby
,/usr/local/bin/gem
y/usr/local/bin/postgres
respetuosamente. En la carrera de la terminal:
-
gem install pg -- --with-pg-config=/usr/local/bin/pg_config
- o
-
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
encabezadoruby.h
-
developer tools installed first
error
-
Para mí, el mensaje de error se veía 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 solo agréguela a la ruta desde donde sea que esté su instalación de Postgres. En mi caso, lo hice:
export PATH=/Applications/Postgres.app/Contents/Versions/9.5/bin:$PATH
entonces
bundle
Eso es.
Para mí, en Yosemite, no necesité especificar la ruta pg_config
. El siguiente lo consiguió hecho.
brew install postgresql
sudo env ARCHFLAGS="-arch x86_64" gem install pg
Parece que la bandera de la arquitectura es la clave.
Postgres 9.4:
gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/Versions/9.4/bin/pg_config
Postgres también funcionó para mí. (Postgres 93, mac buey 10.9.1) 1. descargar @ Postgress.app y luego
gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
Es realmente importante asegurarse de obtener el número de versión correcto en el nombre de la carpeta de Postgres.
Además, probé esta corrección en otra aplicación y seguí recibiendo un error que quería una versión específica de PG (en mi caso 0.16.0), así que tuve que agregar -v ''0.16.0'' a mi comando.
Si desea evitar el uso de MacPorts, puede descargar la Postgress.app y colocarla en el directorio de la aplicación.
Luego, especifique la ubicación de pg_config
recién descargado:
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config
Si se ejecuta en un problema de encabezados faltantes, intente especificar el directorio de include
de la aplicación:
gem install pg -- --with-pg-include=''/Applications/Postgres.app/Contents/Versions/latest/include/''
Si después de probar todo aquí, todavía no se instala, intente abrir Xcode y acepte el acuerdo de licencia.
Si tienes homebrew, solo escribe:
$ brew install postgresql
Usa brew para obtener postgresql
brew install postgresql
Compruebe que tiene pg_config en la infusión instalada. Encontré el mío en
/usr/local/Cellar/postgresql/9.3.3/bin/pg_config
Verifique a través de:
$ ls /usr/local/Cellar/postgresql/9.3.3/bin/pg_config
> /usr/local/Cellar/postgresql/9.3.3/bin/pg_config
Una vez hecho esto, instale la gema pg
con
env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/Cellar/postgresql/9.3.3/bin/pg_config
sudo ARCHFLAGS = "- arch x86_64" gem install pg - --with-pg-config = / usr / local / bin / pg_config
sudo su
entonces
ARCHFLAGS="-arch x86_64" gem install pg -v ''0.18''
trabajado en 10.10.2