Estoy tratando de instalar PostgreSQL para Rails en Mac OS X 10.6. Primero probé la instalación de MacPorts pero no funcionó bien, así que hice la instalación de DMG con un solo clic. Eso pareció funcionar.
Sospecho que necesito instalar los paquetes de desarrollo de PostgreSQL, pero no tengo idea de cómo hacerlo en OS X.
Esto es lo que obtengo cuando intento hacer sudo gem install pg
:
$ sudo gem install pg
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
checking for pg_config... yes
Using config values from /Library/PostgreSQL/8.3/bin/pg_config
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
--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=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
--with-pg
--without-pg
--with-pg-dir
--without-pg-dir
--with-pg-include
--without-pg-include=${pg-dir}/include
--with-pg-lib
--without-pg-lib=${pg-dir}/lib
--with-pg-config
--without-pg-config
--with-pg_config
--without-pg_config
--with-pqlib
--without-pqlib
--with-libpqlib
--without-libpqlib
--with-ms/libpqlib
--without-ms/libpqlib
Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/pg-0.11.0 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/pg-0.11.0/ext/gem_make.out
ruby-on-rails
ruby-on-rails-3
postgresql
rubygems
Jason Swett
fuente
fuente
pg_config
? Eso debería facilitarnos la ayuda.Respuestas:
¡TRABAJÓ!
fuente
env ARCHFLAGS="-arch x86_64" gem install pg -v '0.17.1' -- --with-pg-config=/opt/local/lib/postgresql91/bin/pg_config
Intenté la respuesta mejor calificada aquí:
Pero cuando intenté ejecutar la instalación del paquete nuevamente, tuve el mismo error. Luego probé la instalación completa del paquete con ARCHFLAGS de esta manera:
¡Trabajó para mi! Asegúrese de reemplazar x86_64 con i386 según la arquitectura que tenga.
fuente
Estaba teniendo este problema al usar EnterpiseDB .dmg. Si eso es lo mismo que usaste, lo hice funcionar especificando la arquitectura correcta:
Hay algunos tutoriales en la web que dicen especificar una arquitectura diferente (como "-arch x86_64" para las personas que usaron MacPorts) pero no funcionó para mí porque usé la instalación de un solo archivo.
fuente
Si usa Yosemite:
Luego:
Y (opcional) finalmente, si desea iniciar autovacuum ...
fuente
Quizás puedas probar este:
Para conocer la arquitectura de tu biblioteca puedes usar
que dio solo 1 arquitectura en mi caso (instalado a través de homebrew):
fuente
Solución: reinstalé PostgreSQL con Homebrew.
fuente
Fingir
gem
prefijando las variables de entorno apropiadas. Si estaba instalando desde MacPorts, debería poder seguir el siguiente procedimiento:A partir de ahí, tire de la
LIBDIR
,INCLUDEDIR
,CPPFLAGS
,LIBS
yLDFLAGS
(el que creo que va a tener que correr esLIBDIR
, sin embargo). Entonces correrás:Eso debería hacerlo por ti. Avísame si no es así.
fuente
locate pg_config
CPPFLAGS
oLDFLAGS
(no sé lo que son, lo siento).locate pg_config
me enseñó algunas cosas, sin embargo. E intenté simplemente instalar PostgreSQL a través de MacPorts y usar su comando, no funcionó.LDFLAGS
no estaba configurado en el directorio que conteníalibpq
. Ver arriba para más detalles.El problema que tuvimos fue bastante extraño.
pero cuando hicimos la instalación de un paquete, de hecho, el paquete no se instaló para la versión de ruby que instaló rbenv, por lo tanto, cuando escribimos la instalación del paquete, usó el paquete del sistema.
Entonces, antes de ejecutar la instalación del paquete, asegúrese de haber instalado el paquete ejecutando
fuente
No creo que necesite los archivos de desarrollo de Postgres, todo lo que necesita debería haber sido incluido con su instalador. Es más probable que la ruta en la que están instalados no esté en la ruta de su entorno y, por lo tanto, gem no puede encontrarlos cuando intenta compilar pg.
No debería tener que ejecutarse
gem install pg
como root, de hecho, si lo hace, es probable que su RUTA (la RUTA de la raíz si se ejecuta con sudo) no contenga la información necesaria.Lo siguiente generalmente funciona para mí:
fuente
gem install pg
(junto con sus dos comandos anteriores) en lugar desudo gem install pg
seguir dando exactamente los mismos resultados./Library/PostgreSQL/...
a la ubicación correcta de donde esté tu copia de la instalación de Postgres?sudo port install postgresql83 postgresql83-server
, similar a estas instrucciones: flux88.com/2010/06/installing-postgresql-for-rails-on-mac-os-x . Parece que el instalador independiente es de 32 bits, por lo que desea establecer sus indicadores de arco en 32 bits, incluso si su máquina es de 64 bits. Si no puede hacer que funcione, le sugiero que desinstale y vuelva a instalar a través de MacPorts y luego intente las instrucciones anteriores. ¡Espero que ayude!Esto es lo que finalmente lo hizo por mí (combinación de múltiples soluciones proporcionadas anteriormente junto con otras publicaciones):
$ sudo env ARCHFLAGS = "- arch x86_64" instalación de gemas pg - with-pg-include = / Library / PostgreSQL / 9.6 / include /
fuente
La
ARCHFLAGS
respuesta que otros han propuesto no funcionará si de alguna manera terminaste con una versión de 64 bits de postgres (que se instalará homebrew) y una versión de rubí de 32 bits. Por alguna razónrbenv
insiste en construir Ruby 1.9.2-p290 como 32 bits para mí, lo que hace que sea imposible vincular contra los postgres de 64 bits.Verifique la arquitectura de su binario ruby con
o si usa rbenv
Y compara con tus postgres:
Si hay una falta de coincidencia, deberá volver a instalar postgres o ruby. Con rbenv resolví esto simplemente cambiando a una versión diferente: en
1.9.3-p194
lugar de1.9.2-p290
.fuente
Así es como llegué a trabajar en Mavericks. Nota: ya había instalado postgresql 9.3 desde homebrew.
Actualice Xcode a 5.0 desde App Store
Instalar herramientas de desarrollo de línea de comandos
xcode-select --instalar
Aceptar la licencia de Xcode
sudo xcodebuild -license
Instalar gema
ARCHFLAGS = "- arch x86_64" gema instalar pg
fuente
Así que básicamente hice esto ;-)
fuente
Probablemente llego un poco tarde a la fiesta aquí, pero en mi caso estaba usando rbenv y actualizando a Ruby 2.2.3. Tuve que instalar Bundler para que el mío funcionara, tenía una versión anterior del sistema.
gem install bundler
fuente
Como se mencionó anteriormente, esto tiene que ver con el hecho de tener dos arcos de rubí en rbenv,
/usr/bin/ruby: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [i386:Mach-O executable i386]
lo que tuve que hacer fue simplemente instalar el arco depg
forzado de gemasx86_64
para usarlo con este comando:sudo env ARCHFLAGS="-arch x86_64" gem install pg
Recuerda tener tu
bash_profile
información actualizadaAgregue la ruta de sus postgres, en este caso estoy usando la aplicación Postgres (
OSX
) en lugar debrew
( https://postgresapp.com/ ) por defecto, esta es la ubicación:export PATH=/Applications/Postgres.app/Contents/Versions/10/bin:$PATH
Recargar bash con
sudo vi ~/.bash_profile
Después de hacer esto, finalmente pude instalar con éxito
pg gem
¡Espero que esto ayude!
fuente
En Mac puedes probar esto (funciona para mí): gem install pg - with-pg-include = / Library / PostgreSQL / 9.5 / include Fetching: pg-1.0.0.gem (100%) Construyendo extensiones nativas con: ' with-pg-include = / Library / PostgreSQL / 9.5 / include 'Esto podría llevar un tiempo ... Instalado correctamente pg-1.0.0 Analizando la documentación para pg-1.0.0 Instalando la documentación de ri para pg-1.0.0 Realizando la instalación de la documentación por pg después de 3 segundos 1 gema instalada
(esta parte "/Library/PostgreSQL/9.5/include" debe poner su ruta de Postgres)
fuente