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 ответов
возможные решения:
-
$ unset C_INCLUDE_PATH
и переустановите Rubyэто решение, которое работает для меня.
$ echo $C_INCLUDE_PATH
если
C_INCLUDE_PATH
установлен, он сломает сборки Ruby. Удалите его из своей среды; либо временно с помощью$ unset C_INCLUDE_PATH
, или постоянно (может быть .bashrc следующее, .профиль. ,bash_profile); затем переустановите ruby. -
это может быть связано для 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