LoadError: dlopen (digest / sha1.bundle): символ не найден: RB Digest SHA1 Finish

Руби недавно перестала работать на машине моего брата.

  • gem команды
  • rails server
  • rails console

все не удалось со следующей ошибкой:

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

он пробовал разные версии Ruby. Переустановка всего с помощью rvm. Бег!--5--> и повторно rvm. Переключение на rbenv. Несколько рубинов, установленных через ruby-build. brew install ruby.

у всех была одна и та же проблема.

если он удалил все рубины, версия ОС поставляется в /usr/bin/ruby работали. Но это 1.8.7.

после нескольких часов устранения неполадок мы пришли к решению ниже. Надеюсь, это поможет тебе избежать боли.

2 ответов


возможные решения:

  1. $ unset C_INCLUDE_PATH и переустановите Ruby

    это решение, которое работает для меня.

    $ echo $C_INCLUDE_PATH

    если C_INCLUDE_PATH установлен, он сломает сборки Ruby. Удалите его из своей среды; либо временно с помощью $ unset C_INCLUDE_PATH, или постоянно (может быть .bashrc следующее, .профиль. ,bash_profile); затем переустановите ruby.

  2. это может быть связано для OpenSSL, RVM, инструментов командной строки XCode (gcc) или других проблем сборки.

    посмотреть ответ если предыдущее решение не сработало.


для тех, кто, как я, приходит сюда из-за такой ошибки:

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

одно решение (взято отсюда) может быть, переустановить вашу версию ruby. например: rbenv install 2.0.0-p247