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


249

私は自作を使用して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>'

2
SSLv2が壊れているため、コードにが必要な理由はほとんどありませんSSLv2_client_method。Rubyファイルを開いて、SSLv2メソッドへの参照をコメント化できますか?根本的な原因は構成libssl/usr/local/opt/openssl/libれていますno-ssl2(ただし、2014年には問題にはなりません)。
jww 2014

回答:


287

私のシステムで同様の問題を修正しました。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

これは、ruby 1.9.3をrvm経由で新規インストールした後に発生します。新しいMacと古いコードベース。opensslの別のバージョンが必要ですか?
digidigo 2014

8
@ twelve17エラーは、SSLライブラリが見つからないことに関連しており、OPは、インストールされているopensslのバージョンを最近アップグレードしたとOPが述べています。同じアップグレードシナリオで同じ問題が発生しました。再インストールにより、Rubyがアップグレードされたライブラリに対してビルドされることで問題が修正されると思われます(古いライブラリは見つかりません)。
Ryan Dlugosz 2014

7
これに追加するだけで、boxenユーザーがこれに遭遇した場合-上記のコマンドを使用してrbenvを再インストールすることができませんでしたrbenv uninstall 2.1.2 rbenv install 2.1.2 bundle
ですから、rbenv

4
ヨセミテのアップグレード後、この問題が発生しました。上記は機能しましたが、私がgccをリダイレクトした後でのみです。 export CC=/usr/bin/gcc詳細:助かったrbenvからのgithubの問題
Dan Williams

1
rbenvをhomebrewとともにインストールした場合はbrew upgrade rbenv ruby-build、同様に必要になる場合があります。
Justin Tanner、

185

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

複数のジェムセットがある場合は、それぞれについてこれらの手順を繰り返す必要があります。


10
これでうまくいきました。rvmはgemsetの初期状態の構築を自動的に開始しました。
Ducain 2014年

ヨセミテに私のために働いた、私はちょうど走っ: rvm get stablervm reinstall ruby-2.0.0
MatCarey

4
Yosomiteでは、正しいgccバージョンが見つからないため、rubyのインストールに問題がありました。最終的にCC=/usr/bin/gcc rvm reinstall ruby-1.9.3-p551
アレクサンダーベレツキー2014

@MatCarey rvm get stablervm reinstall ruby-2.0.0あまりにマーベリックスで働いていました。ありがとう。
amertkara 2014

私がうまくいったことのrvm get stable後には続きますrvm install ruby-2.0.0-p598(私がいくつかのパッチバージョンを使用していたため)また、現在の作業ディレクトリ()を更新.ruby-version、実行bundle、終了し、正常に実行される前cd ..にそこに戻りました(cd -foreman start
user664833 2015年

17

1.9.3-p547について、rvmで同じ問題が発生する

rvm reinstall ruby-1.9.3-p547

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

libv8 version 3.16.14.3 failed

私がそもそもここまでたどり着いたのはそのためです。悪質な欲求不満円...

update
プラットフォームのバージョンを確認します。たとえば、Darwin 10.8がありますが、ここには記載されていません。そのため、libv8 gemのバージョンにプラットフォーム用のプリコンパイル済みバイナリが含まれていない限り、長い(長い-長い)時間がかかります。夕食に出かけて、映画に出て、のんびりしてください...十分な質問があれば、バイナリディストリビューションをセットアップするかもしれません...


1
Ruby 1.9.3のサポートも必要で、Yosemite 10.10.2のrvmhomebrewおよびxcodev6.1.1 を使用しています。私はちょうど使用しましたrvm reinstall ruby-1.9.3-p394。新しいルビーをコンパイルした後、RVMは問題なく原石を作成しました。
トムハリソン

はい、それはバイナリ配布に基づいています。リンクは、すぐに反応するかどうか、または瞑想するかどうかを最初に確認できるようにするためのものです。
ジェローム


7

あなたは私のように複数のopenssl'sを使っているかもしれません

2.1.2でも同じ問題が発生しましたが、Ryan Dlugoszの優れた答えは十分ではありませんでした。私の問題は、opensslの複数のバージョンがインストールされていることでした(以前のプロジェクトでインストールしたbrew 思いgitます)。

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

グローバルrbenv ruby​​を確認する

$ 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

5

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

RVMの削除

システムからRVM(Rubyバージョンマネージャ)を削除するにはどうすればよいですか?

RVM、レールのインストール

$ curl -L https://get.rvm.io | bash -s
$ rvm get stable
$ rvm requirements
$ rvm install 2.0.0 --with-openssl-dir = $ HOME / .rvm / usr
$ rvm use 2.0.0 $ gem update --system 2.0.3
$ gem install rails -バージョン4.0.5


4

rbenvユーザー:

Rubyの正しいバージョンを使用していることを確認するのに役立ちます。rbenvを再インストールするか、新しいRubyをインストールする場合は、インストールしたRubyバージョンに変更します。

$ rbenvローカル2.1.3


1

誰かを助けるかもしれない場合:私はRubyの新しいバージョン(2.1.2)をインストールしていて、私の.ruby-versionファイルで古いバージョン(2.0.0-p353)を参照しました

.ruby-versionファイルを2.1.2に変更すると、問題が解決しました。


1

Ruby 2.2.2にアップグレードした後、同様の問題が発生しました。ただし、私の環境は少し異なり、上記のソリューションが機能しません。

私が使用しています:

  • OSX Yosemite(10.10.4)
  • クルビー
  • ruby-install
  • openssl(homebrew経由でインストール)

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

> sudo ruby-install -r /opt/rubies ruby 2.2.2 -- --with-openssl-dir=/usr/local/opt/openssl
> gem install bundler
> bundler install

0

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

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

そして、私が知っている誰かのように、後のバージョンがrbenvに表示されないという問題がある場合... ruby​​-buildを更新したことを確認してください。おそらく醸造を通じて。
wkhatch
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.