Ruby Bundle-Symbol nicht gefunden: _SSLv2_client_method (LoadError)

249

Ich habe versucht, einige Updates für openssl mit homebrew zu machen, und irgendwie habe ich es geschafft, alles zu kaputt zu machen. Ich kann jetzt nichts tun, das bekomme ich, wenn ich versuche, eine Bundle-Installation durchzuführen:

$ 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>'
Lenek
quelle
2
SSLv2 ist kaputt, daher gibt es fast keinen Grund für Code SSLv2_client_method. Können Sie die Ruby-Datei (en) öffnen und Verweise auf SSLv2-Methoden auskommentieren? Die zugrunde liegende Ursache wurde libsslin /usr/local/opt/openssl/libmit konfiguriert no-ssl2(sollte aber 2014 kein Problem sein).
JWW

Antworten:

287

Ich habe gerade ein ähnliches Problem auf meinem System behoben. Sie müssen Ihre Installation von Ruby 2.1.2 neu erstellen und sie wird erneut mit dem neu aktualisierten SSL verknüpft.

$ 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
Ryan Dlugosz
quelle
Dies geschieht nach einer Neuinstallation von Ruby 1.9.3 über rvm. Neuer Mac und eine alte Codebasis. Benötige ich eine andere Version von openssl?
Digidigo
8
@ zwölf17 Die Fehler hängen damit zusammen, dass keine SSL-Bibliothek gefunden werden konnte, und das OP erwähnte, dass sie kürzlich ihre installierte Version von openssl aktualisiert haben. Ich hatte das gleiche Problem mit dem gleichen Upgrade-Szenario. Ich vermute, dass die Neuinstallation Probleme behebt, indem Ruby gegen die aktualisierten Bibliotheken erstellt wird (die alten können nicht gefunden werden).
Ryan Dlugosz
7
Nur um dies hinzuzufügen, wenn ein Boxen-Benutzer darauf stößt - ich konnte rbenv nicht dazu bringen, mit den obigen Befehlen neu zu installieren -, musste ich 2.1.2 mit rbenv deinstallieren und neu installieren rbenv uninstall 2.1.2 rbenv install 2.1.2 bundle
jeffsaracco
4
Nach dem Yosemite-Upgrade hatte ich dieses Problem. Das obige hat funktioniert, aber erst nachdem ich meinen gcc umgeleitet habe. export CC=/usr/bin/gccFür weitere Informationen: Hier ist die Github-Ausgabe von Rbenv, die geholfen hat
Dan Williams
1
Wenn Sie rbenv mit Homebrew installiert haben, müssen Sie dies möglicherweise auch tun brew upgrade rbenv ruby-build.
Justin Tanner
185

Ich hatte ein ähnliches Problem nach dem Upgrade von openssl. Ich benutze rvm. Ich starrte durch ein Upgrade von rvm.

$ rvm get stable

Ich habe als nächstes 1.9.3 neu installiert.

rvm reinstall ruby-1.9.3-p545

Nach der Neuinstallation lief ich:

$ rvm gemset pristine

Wenn beim Wiederherstellen Ihres Gemset Fehler auftreten, können Sie das Gemset am besten leeren und neu erstellen.

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

Wenn Sie mehrere Edelsteine ​​haben, müssen Sie diese Schritte für jeden einzelnen wiederholen.

Sandeep M.
quelle
10
Das hat bei mir funktioniert. rvm hat das Gebäude von gemset makellos automatisch gestartet.
Ducain
Ich habe für mich an Yosemite gearbeitet und bin gerade gelaufen: rvm get stableundrvm reinstall ruby-2.0.0
MatCarey
4
Auf Yosomite hatte ich ein Problem bei der Installation von Ruby, da es nicht in der Lage ist, die richtige gccVersion zu finden . Ich endete mitCC=/usr/bin/gcc rvm reinstall ruby-1.9.3-p551
Alexander Beletsky
@MatCarey rvm get stableund rvm reinstall ruby-2.0.0arbeitete auch in Mavericks. Vielen Dank.
Amertkara
Was für mich funktioniert hat, rvm get stablefolgt rvm install ruby-2.0.0-p598(da ich hinter einigen Patch-Versionen steckte). Außerdem habe ich mein aktuelles Arbeitsverzeichnis ( ) aktualisiert .ruby-version, ausgeführt bundleund beendet und bin vor der erfolgreichen Ausführung cd ..zu it ( cd -) zurückgekehrt foreman start.
user664833
17

Habe das gleiche Problem für 1.9.3-p547 unter rvm

rvm reinstall ruby-1.9.3-p547

Ruby wird neu installiert, kann jedoch ein gemset_pristinefür die Anwendung nicht einrichten, weil

libv8 version 3.16.14.3 failed

Das war der Grund, warum ich überhaupt an diesen Punkt gekommen bin. Teufelskreis der Frustration ...

Update
Überprüfen Sie Ihre Plattformversion. Ich habe zum Beispiel Darwin 10.8 und das ist hier nicht aufgeführt . Wenn Ihre Version des libv8-Gems keine vorkompilierte Binärdatei für Ihre Plattform enthält, wird dies lange (lange, lange) dauern. Gehen Sie zum Abendessen, ins Kino, entspannen Sie sich ... Wenn Sie genug fragen, richten sie vielleicht eine binäre Distribution ein ...

Hieronymus
quelle
1
Ich brauche Unterstützung auch für Ruby 1.9.3 und bin mit rvm, homebrewund xcodev6.1.1 auf Yosemite 10.10.2. Ich habe nur verwendet rvm reinstall ruby-1.9.3-p394; Nach dem Kompilieren des neuen Rubins machte RVM die Edelsteine ​​auch ohne Probleme makellos.
Tom Harrison
Ja, es basiert auf der Binärverteilung. Der Link ist da, damit man zuerst prüfen kann, ob man eine sofortige Antwort erhält oder losgeht und meditiert!
Jerome
14

Hatte den gleichen Fehler und löste ihn durch brew upgrade openssl

DaveWoodall.com
quelle
5
Musstest du brew link --force openssl?
Kbrock
@kbrock, nein habe ich nicht.
DaveWoodall.com
7

Sie könnten ein Trottel wie ich sein, mit mehreren OpenSSLs

Ich hatte das gleiche Problem für 2.1.2 und Ryan Dlugosz 'ausgezeichnete Antwort ging nicht weit genug. Mein Problem war, dass ich mehrere Versionen von openssl installiert hatte (ich glaube, ich hatte über und installiertbrew git in früheren Projekten ).

Ich musste / opt / local / bin / openssl löschen und dann 2.1.2 neu erstellen.

Überprüfen Sie den globalen Rbenv Ruby

$ rbenv global
2.1.2

Überprüfen Sie openssl

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

Töte das doppelte openssl

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

Neuaufbau 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
Ralph Cowling
quelle
5

Wenn das Problem überhaupt nicht gelöst wurde, schlage ich vor, RVM zu löschen. Und installieren Sie RVM und Rails neu.

RVM löschen

Wie kann ich RVM (Ruby Version Manager) von meinem System entfernen?

Installation von RVM, Rail

$ curl -L https://get.rvm.io | bash -s
$ rvm wird stabil
$ rvm Anforderungen
$ rvm install 2.0.0 --with-openssl-dir = $ HOME / .rvm / usr
$ rvm benutze 2.0.0 $ gem update --system 2.0.3
$ gem install rail --version 4.0.5

Hajime
quelle
4

rbenv Benutzer:

Es hilft sicherzustellen, dass Sie die richtige Version von Ruby verwenden. Wenn Sie rbenv neu installieren oder einen neuen Ruby installieren, wechseln Sie zu der soeben installierten Ruby-Version:

$ rbenv local 2.1.3

Dechimp
quelle
1

Für den Fall, dass es jemandem helfen könnte: Ich hatte eine neuere Version von Ruby installiert (2.1.2) und in meiner .ruby-Versionsdatei habe ich auf die alte (2.0.0-p353) verwiesen.

Das Ändern meiner .ruby-Versionsdatei auf 2.1.2 hat das Problem für mich behoben.

lafeber
quelle
1

Ich hatte ein ähnliches Problem, das nach dem Upgrade auf Ruby 2.2.2 auftrat. Meine Umgebung ist jedoch etwas anders, sodass die oben genannten Lösungen nicht funktionieren.

Ich benutze:

  • OSX Yosemite (10.10.4)
  • chruby
  • Ruby-Installation
  • openssl (installiert über Homebrew)

Die folgenden Befehle haben dies in meiner Situation behoben:

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

Zusätzlich zu den oben genannten Akzeptanzantworten müssen Sie rbenv möglicherweise anweisen, die neu installierte Version zu verwenden. Zum Beispiel hatte ich die alte Version in ~ / .rbenv / version, also verwendete rbenv immer die alte. Das manuelle Festlegen der neuen Version in dieser Datei (oder über die Befehlszeile) sollte das Problem beheben.

rbenv install -f 2.1.2
rbenv versions
rbenv global 2.1.2 //sets global version to 2.1.2
adairdavid
quelle
und wenn Sie Probleme damit haben, dass rbenv spätere Versionen nicht sieht, wie es jemand getan hat, den ich kenne ... stellen Sie sicher, dass Sie Ruby-Build aktualisiert haben. höchstwahrscheinlich durch brauen.
Woche