2013-03-05 8 views
8

Ruby przestał ostatnio pracować na komputerze mojego brata.LoadError: dlopen (digest/sha1.bundle): Symbol nie znaleziony: _rb_Digest_SHA1_Finish

  • gem polecenia
  • rails server
  • rails console

Wszystkie powiodło się z powodu następującego błędu:

$ 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>' 

Próbował różnych wersji Ruby. Ponowna instalacja wszystkiego za pomocą rvm. Uruchamianie rvm implode i ponowne instalowanie rvm. Przejście na rbenv. Kilka Rubinów zainstalowanych za pośrednictwem ruby-build. brew install ruby.

Wszyscy mieli ten sam problem.

Jeśli odinstalował wszystkie rubiny, działała wersja dostarczona w systemie operacyjnym pod numerem /usr/bin/ruby. Ale jest 1.8.7.

Po godzinach rozwiązywania problemów doszliśmy do poniższego rozwiązania. Mam nadzieję, że pomoże ci to uniknąć bólu.

Odpowiedz

10

Możliwe rozwiązania:

  1. $ unset C_INCLUDE_PATH i zainstaluj Ruby

    Jest to rozwiązanie, które pracował dla mnie.

    $ echo $C_INCLUDE_PATH

    Jeśli C_INCLUDE_PATH jest ustawiony, będzie przerwa Ruby buduje. Usuń go ze swojego środowiska; tymczasowo z $ unset C_INCLUDE_PATH lub na stałe (może być w .bashrc, .profile, .bash_profile); następnie zainstaluj ruby.

  2. Może to być związane z OpenSSL, RVM, narzędzia Xcode w linii poleceń (GCC), lub innych kwestii kompilacji.

    Zobacz this answer jeśli poprzednie rozwiązanie nie działa.

2

Dla każdego, kto, jak ja, pochodzących tutaj z powodu błędu tak:

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 

Jednym z rozwiązań (taken from here) może być ponowna instalacja wersji Ruby. np: rbenv install 2.0.0-p247

+0

Ponowna Ruby pracował dla mnie. 'Unset C_INCLUDE_PATH' nie było konieczne. –

Powiązane problemy