2012-03-23 25 views
8

Intentar instalar la gema de pg me da errores.Problemas para instalar la gema de pg

Estoy usando Ruby 1.9.3-p125 construido usando rbenv/ruby-build. Instalé PostgreSQL usando el instalador de un clic. Puedo conectarme a la base de datos usando pgAdmin. Me estoy quedando sin ideas.

% gem install pg                                                  ~ 
Building native extensions. This could take a while... 
ERROR: Error installing pg: 
    ERROR: Failed to build gem native extension. 

     /Users/sandropadin/.rbenv/versions/1.9.3-p125/bin/ruby extconf.rb 
checking for pg_config... yes 
Using config values from /usr/bin/pg_config 
checking for libpq-fe.h... yes 
checking for libpq/libpq-fs.h... yes 
checking for pg_config_manual.h... yes 
checking for PQconnectdb() in -lpq... yes 
checking for PQconnectionUsedPassword()... yes 
checking for PQisthreadsafe()... yes 
checking for PQprepare()... yes 
checking for PQexecParams()... yes 
checking for PQescapeString()... yes 
checking for PQescapeStringConn()... yes 
checking for PQgetCancel()... yes 
checking for lo_create()... yes 
checking for pg_encoding_to_char()... yes 
checking for pg_char_to_encoding()... yes 
checking for PQsetClientEncoding()... yes 
checking for rb_encdb_alias()... yes 
checking for rb_enc_alias()... yes 
checking for struct pgNotify.extra in libpq-fe.h... yes 
checking for unistd.h... yes 
checking for ruby/st.h... yes 
creating extconf.h 
creating Makefile 

make 
compiling pg.c 
compiling pg_connection.c 
pg_connection.c: In function ‘pgconn_wait_for_notify’: 
pg_connection.c:1986: warning: ‘rb_thread_select’ is deprecated (declared at /Users/sandropadin/.rbenv/versions/1.9.3-p125/include/ruby-1.9.1/ruby/intern.h:379) 
pg_connection.c: In function ‘pgconn_block’: 
pg_connection.c:2512: warning: ‘rb_thread_select’ is deprecated (declared at /Users/sandropadin/.rbenv/versions/1.9.3-p125/include/ruby-1.9.1/ruby/intern.h:379) 
compiling pg_result.c 
linking shared-object pg_ext.bundle 
ld: in /usr/local/lib/libssl.0.9.8.dylib, missing required architecture x86_64 in file for architecture x86_64 
collect2: ld returned 1 exit status 
make: *** [pg_ext.bundle] Error 1 


Gem files will remain installed in /Users/sandropadin/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/pg-0.13.2 for inspection. 
Results logged to /Users/sandropadin/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/pg-0.13.2/ext/gem_make.out 
+2

¿Dónde obtuvo su libssl de? Parece que podrías estar intentando mezclar binarios de 32 bits y de 64 bits. –

+0

Creo que solo usando 'brew install openssl' – Sandro

+0

Creo que tiene razón sobre mezclar los dos, pero no sé si es posible o cómo forzar a Homebrew a construir openssl como de 64 bits – Sandro

Respuesta

14

No estoy seguro de cuál de los siguientes pasos solucionó definitivamente este problema. Pero como mu es demasiado breve, el problema fue mezclar binarios de 32 bits y 64 bits.

  • primero, he instalado este 64-bit version of PostgreSQL
  • segundo, me desinstalado cualquier instalación antigua Homebrew OpenSSL

    $ brebaje desinstalación openssl

  • tercero, he instalado el 64 bits versión de OpenSSL con Homebrew

    $ brew instalar --64 bits openssl

  • Por último, al instalar la gema pg, he cambiado el LDFLAGS para que apunte a la versión de 64 bits de OpenSSL

    $ gem install pg - with-ldflags = '- L/usr// Almacén/openssl/0.9.8s locales

+1

Debo decir que He estado luchando para obtener la gema 'pg' para compilar en mi copia de Lion durante unos 6 meses. Ahora llegó esta respuesta, y puedo ejecutar Rails 3.2 + PostgreSQL como un campeón. ¡Gracias! –

+1

Esto funcionó para mí en Mountain Lion, ruby ​​1.9.3p194 (2012-04-20 revisión 35410) [x86_64-darwin12.0.0]. Utilicé 'brew install postgresql', y no tenía ya openssl, así que simplemente' brew install --64-bit openssl' y luego usé los LDFLAGS que suministró. – thugsb

+0

funciona muy bien, excepto que la versión de openssl se ha movido (ahora en 1.0.1c). Un usuario necesitará cd/usr/local/Cellar/openssl/y ejecutar 'ls' para ver su número de versión –

Cuestiones relacionadas