9

Ruby は最近、弟のマシンで動作しなくなりました。

  • 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。の実行rvm implodeと再インストールrvm。に切り替えrbenvます。経由でいくつかの Ruby がインストールされruby-buildます。brew install ruby.

すべてが同じ問題を抱えていました。

彼がすべての ruby​​ をアンインストールした場合、OS が提供するバージョンは機能し/usr/bin/rubyていました。しかし、それは 1.8.7 です。

何時間ものトラブルシューティングの後、以下の解決策にたどり着きました。少しでも痛みを和らげるお手伝いができれば幸いです。

4

2 に答える 2

10

可能な解決策:

  1. $ unset C_INCLUDE_PATHRubyを再インストールします

    これは私のために働いた解決策です。

    $ echo $C_INCLUDE_PATH

    が設定されている場合C_INCLUDE_PATH、Ruby ビルドが壊れます。環境から削除します。一時的に$ unset C_INCLUDE_PATH、または永続的に (.bashrc、.profile、.bash_profile にある可能性があります); その後、ルビーを再インストールします。

  2. OpenSSL、RVM、XCode のコマンド ライン ツール (gcc)、またはその他のビルドの問題に関連している可能性があります。

    前の解決策がうまくいかなかった場合は、この回答を参照してください。

于 2013-03-05T07:35:39.420 に答える
4

私のように、次のようなエラーのためにここに来る人のために:

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

解決策の 1 つ (ここから取得) は、お使いのバージョンの Ruby を再インストールすることです。例えば:rbenv install 2.0.0-p247

于 2014-09-02T09:31:55.007 に答える