Estoy intentando instalar la gema pg para poder trabajar de nuevo con mis proyectos rails. Pero me sale este error Construyendo extensiones nativas. Esto puede tardar un poco... ERROR: Error
instalando pg: ERROR: Failed to build gem native extension.
/Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb checking for pg_config... no No pg_config... intentándolo de todas formas. Si la construcción falla, por favor inténtelo de nuevo con --with-pg-config=/path/to/pg_config buscando libpq-fe.h... no No se encuentra la cabecera 'libpq-fe.h extconf.rb failed No se pudo crear Makefile debido a alguna razón, probablemente falta de librerías y/o cabeceras necesarias. Compruebe el archivo mkmf.log para más detalles. Puede que necesite opciones de configuración opciones.
Opciones de configuración proporcionadas: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/Usuarios/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/bin/ruby --with-pg --with-pg-config --with-pg-config --con-pg_config --sin-pg_config --con-pg-dir --with-pg-dir --with-pg-include --without-pg-include=${pg-dir}/include --with-pg-lib --without-pg-lib=${pg-dir}/ >
Los archivos gema permanecerán instalados en /Usuarios/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 He probado todo lo que he encontrado en stackoverflow pero sigo obteniendo este error. Si intento instalar postgresql usando brew obtengo el siguiente waring: Advertencia: postgresql-9.2.4 ya está instalado, sólo que no está vinculado. Si intento enlazar brew link postgresql Enlazando /usr/local/Cellar/postgresql/9.2.4... Advertencia: No se pudo vincular postgresql. Desvinculando...
Error: Could not symlink file: /usr/local/Cellar/postgresql/9.2.4/share/man/man7/WITH.7 /usr/local/share/man/man7 no tiene permisos de escritura. Debe cambiar sus permisos. Ayuda por favor NOTA: Ya he instalado las herramientas de línea de comandos para mavericks.
Si desinstalo usando homebrew e intento instalar de nuevo, obtengo este error: ==> Descargando http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2 ######################################################################## 100.0% ==> Parcheando archivo src/pl/plpython/Makefile parcheando 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 instalar-mundo ==> Advertencias
Build Notes
> Si las construcciones de PostgreSQL 9 están fallando y usted tiene la versión 8.x instalada, puede que necesite eliminar la versión anterior primero. Ver:
https://github.com/mxcl/homebrew/issues/issue/2510 ;Crear/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 los datos existentes de una versión principal anterior (pre-9.2) de PostgreSQL, consulte:
http://www.postgresql.org/docs/9.2/static/upgrading.html >Carga de Extensiones
> Por defecto, Homebrew construye todas las extensiones Contrib disponibles. Para ver una lista de todas las extensiones disponibles, desde la línea de comandos psql, ejecute:
SELECT * FROM pg_available_extensions;Para cargar cualquiera de los nombres de extensión, 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, ejecuta: 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 más información sobre extensiones, consulte:
http://www.postgresql.org/docs/9.2/static/contrib.htmlOtros
> 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 pg > Para instalar gemas sin sudo, consulte la wiki de Homebrew. > Para que launchd inicie 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'necesita quiere/necesita launchctl, puede simplemente ejecutar: pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start Advertencia: Could not link postgresql. Desvinculando... Error: The
brew link
step did not complete con éxito La fórmula construida, pero no es symlinked en /usr/local Puede intentarlo de nuevo usando `brew link postgresql' ==> Resumen 🍺 /usr/local/Cellar/postgresql/9.2.4: 2831 ficheros, 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 Enlazando /usr/local/Cellar/postgresql/9.3.1... 421 enlaces simbólicos creados Y finalmente sudo ARCHFLAGS="-arch x86_64" gem install pg > Buscando: pg-0.17.0.gem (100%) Construyendo extensiones nativas. Esto podría tardar un rato... Instalado con éxito pg-0.17.0
Si desea evitar el uso de MacPorts, puede descargar la Postgres App y colocarla en el directorio de aplicaciones.
A continuación, especifique la ubicación del pg_config
recién descargado:
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config
Si te encuentras con un problema de falta de cabeceras, intenta especificar el directorio include
de la aplicación:
gem install pg -- --with-pg-include='/Applications/Postgres.app/Contents/Versions/latest/include/'
No he podido instalar Postgres a través de MacPorts. En su lugar, instalé Postgress.app. y llamé a
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
Nota: en versiones más recientes (en 9.3 al menos) la ruta es en realidad: /Applications/Postgres.app/Contents/Versions/9.3/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 luego
gem install pg -v '0.16.0' -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config
Para la última versión es necesario deducir -v '0.16.0'
gem install pg -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config
Si tienes Homebrew instalado no instales MacPorts antes de leer sobre su coexistencia