2012-03-23 21 views
8

Próba zainstalowania pg gem daje mi błędy.Problemy z instalacją pg gem

Używam Ruby 1.9.3-p125 zbudowanego przy użyciu rbenv/ruby-build. Zainstalowałem PostgreSQL za pomocą instalatora jednym kliknięciem. Mogę połączyć się z DB za pomocą pgAdmin. Kończy mi się pomysł.

% 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

Skąd masz swoją libssl od? Wygląda na to, że możesz próbować łączyć 32-bitowe i 64-bitowe pliki binarne. –

+0

Myślę, że właśnie z użycia 'brew install openssl' – Sandro

+0

Myślę, że masz rację co do mieszania tych dwóch, ale nie wiem, czy to możliwe, lub jak zmusić Homebrew do zbudowania openssl jako 64-bitowego – Sandro

Odpowiedz

14

Nie jestem pewien, który z poniższych kroków ostatecznie rozwiązał ten problem. Ale ponieważ mu jest zbyt krótko wspomniany, problemem było połączenie 32-bitowych i 64-bitowych plików binarnych.

  • 1., zainstalowałem ten 64-bit version of PostgreSQL
  • 2nd odinstalowałem żadnej starej instalacji Homebrew OpenSSL

    $ napar odinstalować openssl

  • 3., mam zainstalowany 64-bitowy wersja OpenSSL z Homebrew

    $ zaparzyć zainstalować --64-bitowy openssl

  • Wreszcie podczas instalowania gem pg, zmieniłem LDFLAGS zwrócić się do wersji 64-bitowej OpenSSL

    $ gem install pg - --with-ldflags = '- L/usr/local/Piwnica/openssl/0.9.8s'

+1

Muszę powiedzieć, że Zmagałem się, aby klej "pg' skompilował się na moim egzemplarzu Lwa przez około 6 miesięcy. Teraz ta odpowiedź pojawiła się i jestem w stanie uruchomić Rails 3.2 + PostgreSQL jak mistrz. Dziękuję Ci! –

+1

To działało dla mnie na Mountain Lion, rubin 1.9.3p194 (2012-04-20 rewizja 35410) [x86_64-darwin12.0.0]. Użyłem 'brew install postgresql', i nie miałem już openssl, więc po prostu' brew install - 64-bit openssl', a następnie użyłem dostarczonego zestawu LDFLAGS. – thugsb

+0

działa świetnie, z wyjątkiem wersji openssl została przeniesiona (teraz na 1.0.1c). Użytkownik będzie musiał wykonać komendę cd/usr/local/Cellar/openssl/i uruchomić 'ls', aby zobaczyć numer wersji –

Powiązane problemy