Erik Peterson
Erik Peterson

Reputation: 4311

LoadError: dlopen(digest/sha1.bundle): Symbol not found: _rb_Digest_SHA1_Finish

Ruby stopped working on my brother's machine recently.

All failed with the following error:

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

He tried different versions of Ruby. Reinstalling everything with rvm. Running rvm implode and reinstalling rvm. Switching to rbenv. Several Rubies installed via ruby-build. brew install ruby.

All had the same problem.

If he uninstalled all rubies, the OS supplied version in /usr/bin/ruby worked. But it's 1.8.7.

After hours of troubleshooting, we arrived at the solution below. I hope it helps you avoid some pain.

Upvotes: 9

Views: 9328

Answers (2)

sebkkom
sebkkom

Reputation: 1446

For anyone, like me, coming here because of an error like this:

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

One solution (taken from here) might be to reinstall your version of ruby. eg: rbenv install 2.0.0-p247

Upvotes: 4

Erik Peterson
Erik Peterson

Reputation: 4311

Possible solutions:

  1. $ unset C_INCLUDE_PATH and reinstall Ruby

    This is the solution that worked for me.

    $ echo $C_INCLUDE_PATH

    If C_INCLUDE_PATH is set, it will break Ruby builds. Remove it from your environment; either temporarily with $ unset C_INCLUDE_PATH, or permanently (might be in .bashrc, .profile, .bash_profile); then reinstall ruby.

  2. It might be related to OpenSSL, RVM, XCode's Command Line Tools (gcc), or other build issues.

    See this answer if the previous solution didn't work.

Upvotes: 10

Related Questions