web-dev-qa-db-ja.com

ルビーバンドルシンボルが見つかりません:_SSLv2_client_method(LoadError)

私は自作を使ってopensslを更新しようとしていましたが、どうにかしてすべてを壊しました。私は今何もすることはできません、これは私がバンドルインストールをやろうとするとき私が得るものです:

$ bundle install
/Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in    `require': dlopen(/Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/2.1.0/x86_64-darwin13.0/openssl.bundle, 9): Symbol not found: _SSLv2_client_method (LoadError)
Referenced from: /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/2.1.0/x86_64-darwin13.0/openssl.bundle
Expected in: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
in /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/2.1.0/x86_64-darwin13.0/openssl.bundle - /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/2.1.0/x86_64-darwin13.0/openssl.bundle
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/2.1.0/openssl.rb:17:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/2.1.0/rubygems/security.rb:11:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/2.1.0/rubygems/package.rb:43:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/2.1.0/rubygems/dependency_installer.rb:3:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/installer.rb:2:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/cli/install.rb:78:in `run'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/cli.rb:146:in `install'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor/command.rb:27:in `run'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor/invocation.rb:121:in `invoke_command'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor.rb:363:in `dispatch'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor/base.rb:440:in `start'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/cli.rb:9:in `start'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/gems/2.1.0/gems/bundler-1.6.3/bin/bundle:20:in `block in <top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/friendly_errors.rb:5:in `with_friendly_errors'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/Ruby/gems/2.1.0/gems/bundler-1.6.3/bin/bundle:20:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/bin/bundle:23:in `load'
    from /Users/asServer/.rbenv/versions/2.1.2/bin/bundle:23:in `<main>'
248
Lenek

私はちょうど私のシステム上で同様の問題を修正しました。あなたはRuby 2.1.2のあなたのインストールを再構築する必要があり、それは新しく更新されたSSLに対して再リンクするでしょう。

$ rbenv install 2.1.2
rbenv: /Users/ryan/.rbenv/versions/2.1.2 already exists
continue with installation? (y/N) y
Downloading Ruby-2.1.2.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/f22a6447811a81f3c808d1c2a5ce3b5f5f0955c68c9a749182feb425589e6635
Installing Ruby-2.1.2...
Installed Ruby-2.1.2 to /Users/ryan/.rbenv/versions/2.1.2
286
Ryan Dlugosz

私はopensslをアップグレードした後に同様の問題を抱えていました。私はrvmを使います。私はrvmをアップグレードすることによって凝視しました。

$ rvm get stable

次に1.9.3を再インストールしました。

rvm reinstall Ruby-1.9.3-p545

再インストールした後、私は走った:

$ rvm gemset pristine

あなたがあなたのgemsetを復元しているエラーを見るならば、あなたの最良の選択肢はgemsetを空にしてそれを再構築することでしょう。

rvm gemset use mygemset
rvm gemset empty mygemset
gem install bundler
bundle install

あなたが複数のgemsetsを持っているなら、あなたはそれらのそれぞれに対してこれらのステップを繰り返さなければならないでしょう。

185
Sandeep M

Rvmの下で、1.9.3-p547についても同じ問題があります。

rvm reinstall Ruby-1.9.3-p547

Rubyは再インストールされますが、アプリケーションのgemset_pristineの設定に失敗します。

libv8 version 3.16.14.3 failed

そもそも私がこの点に到達したのはそのためです。悪意のある欲求不満の輪...

更新
あなたのプラットフォームのバージョンを確認してください。 私は例えばDarwin 10.8を持っています、そしてそれはここにリストされていません 。ですから、あなたのバージョンのlibv8 gemがあなたのプラットフォーム用にプリコンパイルされたバイナリを持っていなければ、それは長い(長い)時間がかかるでしょう。夕食に出かけたり、映画を見たり、ちょっと冷やしたり...十分に尋ねれば、おそらくバイナリディストリビューションを設定するでしょう...

17
Jerome

同じエラーを抱えていてbrew upgrade opensslによってそれを解決しました

14
DaveWoodall.com

あなたは私のようにあえているかもしれません、複数のopensslの

私は2.1.2についても同じ問題を抱えていましたが、Ryan Dlugoszの優れた答えはそれほどうまくいきませんでした。私の問題は、opensslの複数のバージョンがインストールされていることでした(以前のプロジェクトではbrewandgitを通してインストールしたと思います)。

/ opt/local/bin/opensslを削除してから2.1.2を再構築する必要がありました。

グローバルrbenvルビーをチェック

$ rbenv global
2.1.2

Opensslをチェックする

$ which -a openssl
/opt/local/bin/openssl
/opt/local/bin/openssl
/usr/bin/openssl

重複したopensslを終了します

$ Sudo rm -rf /opt/local/bin/openssl

2.1.2を再構築

$ rbenv install -f 2.1.2
Downloading openssl-1.0.1g.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028
Installing openssl-1.0.1g...
Installed openssl-1.0.1g to /Users/globber/.rbenv/versions/2.1.2

Downloading Ruby-2.1.2.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/f22a6447811a81f3c808d1c2a5ce3b5f5f0955c68c9a749182feb425589e6635
Installing Ruby-2.1.2...
Installed Ruby-2.1.2 to /Users/globber/.rbenv/versions/2.1.2
6
Ralph Cowling

まったく問題が解決しない場合は、RVMを削除することをお勧めします。そしてRVMとRailsを再インストールしてください。

rVMの削除

RVM(Ruby Version Manager)をシステムから削除するにはどうすればいいですか?

rVM、レールの設置

$ curl -L https://get.rvm.io | bash -s
$ rvmが安定しました
$ rvmの要件
$ rvm install 2.0.0 --with-openssl-dir = $ HOME/.rvm/usr
$ rvm use 2.0.0 $ gem update - システム2.0.3
$ gem install Rails --version 4.0.5

5
Hajime

rbenvユーザー:

それはあなたがRubyの正しいバージョンを使っていることを確認するのに役立ちます。 rbenvを再インストールするか、新しいRubyをインストールする場合は、インストールしたばかりのRubyバージョンに変更してください。

$ rbenvローカル2.1.3

4
dechimp

誰かに役立つかもしれない場合:私は新しいバージョンのRubyをインストールした(2.1.2)、そして私の.Rubyバージョンのファイルで古いバージョンを参照した(2.0.0-p353)

私の.Ruby-versionファイルを2.1.2に変更することで問題は解決しました。

1
lafeber

私は同様の問題を抱えていました、それはRuby 2.2.2へのアップグレード後に起こりました。しかし、私の環境は少し異なり、上記の解決策は機能しません。

私が使っている:

  • OSXヨセミテ(10.10.4)
  • さくらんぼ
  • Rubyインストール
  • openssl(自作インストール)

私の状況では、次のコマンドでこれを解決しました。

> Sudo Ruby-install -r /opt/rubies Ruby 2.2.2 -- --with-openssl-dir=/usr/local/opt/openssl
> gem install bundler
> bundler install
1
Catharz

上記の回答に加えて、新しくインストールしたバージョンを使用するようにrbenvに指示する必要があります。たとえば、〜/ .rbenv/versionに古いバージョンがあるので、rbenvは常に古いバージョンを使用していました。そのファイルに(またはコマンド行から)新しいバージョンを手動で設定すると、問題が解決するはずです。

rbenv install -f 2.1.2
rbenv versions
rbenv global 2.1.2 //sets global version to 2.1.2
0
adairdavid