2013-03-05 20 views
8

Ruby ha smesso di funzionare recentemente sulla macchina di mio fratello.LoadError: dlopen (digest/sha1.bundle): Simbolo non trovato: _rb_Digest_SHA1_Finish

  • gem comandi
  • rails server
  • rails console

Tutti venuto a mancare con il seguente errore:

$ irb 
irb(main):001:0> require 'digest/sha1' 

LoadError: dlopen(~/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/x86_64-darwin12.2.0/digest/sha1.bundle, 9): Symbol not found: _rb_Digest_SHA1_Finish 
    Referenced from: ~/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/x86_64-darwin12.2.0/digest/sha1.bundle 
    Expected in: flat namespace 

in ~/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/x86_64-darwin12.2.0/digest/sha1.bundle - ~/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/x86_64-darwin12.2.0/digest/sha1.bundle 
    from ~/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require' 
    from ~/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require' 
    from (irb):1 
    from ~/.rbenv/versions/2.0.0-p0/bin/irb:12:in `<main>' 

ha provato diverse versioni di Ruby. Reinstallazione di tutto con rvm. In esecuzione rvm implode e reinstallare rvm. Passare a rbenv. Diversi Ruby installati tramite ruby-build. brew install ruby.

Tutti avevano lo stesso problema.

Se ha disinstallato tutti i rubini, la versione fornita dal sistema operativo in /usr/bin/ruby funzionava. Ma è 1.8.7.

Dopo ore di risoluzione dei problemi, siamo arrivati ​​alla soluzione seguente. Spero che ti aiuti a evitare un po 'di dolore.

risposta

10

Possibili soluzioni:

  1. $ unset C_INCLUDE_PATH e reinstallare Rubino

    questa è la soluzione che ha funzionato per me.

    $ echo $C_INCLUDE_PATH

    Se C_INCLUDE_PATH è impostato, si romperà Rubino costruisce. Rimuovilo dal tuo ambiente; temporaneamente con $ unset C_INCLUDE_PATH o permanentemente (potrebbe essere in .bashrc, .profile, .bash_profile); quindi reinstallare rubino.

  2. Potrebbe essere correlato a OpenSSL, RVM, XCode Command Line Tools (gcc) o altri problemi di build.

    Vedere this answer se la soluzione precedente non ha funzionato.

2

Per chiunque, come me, di venire qui a causa di un errore come questo:

LoadError: dlopen(/Users/sebkomianos/.rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/x86_64-darwin13.0.0/openssl.bundle, 9): Symbol not found: _SSLv2_client_method 
Referenced from: /Users/sebkomianos/.rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/x86_64-darwin13.0.0/openssl.bundle 
Expected in: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib 

Una soluzione (taken from here) potrebbe essere quella di reinstallare la versione di Ruby. es .: rbenv install 2.0.0-p247

+0

Reinstallare il rubino ha funzionato per me. Il 'unsset C_INCLUDE_PATH' non era necessario. –

Problemi correlati