Ruby Bundle Symbol not found: _SSLv2_client_method (LoadError)

249

J'essayais de faire quelques mises à jour d'OpenSL en utilisant Homebrew et j'ai réussi à tout casser. Je ne peux rien faire maintenant, voici ce que j'obtiens lorsque j'essaie de faire une installation groupée:

$ 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
la source
2
SSLv2 est cassé, donc il n'y a presque aucune raison d'avoir du code SSLv2_client_method. Pouvez-vous ouvrir le (s) fichier (s) Ruby et commenter les références aux méthodes SSLv2? La cause sous-jacente est libssldans a /usr/local/opt/openssl/libété configurée avec no-ssl2(mais cela ne devrait pas poser de problème en 2014).
jww

Réponses:

287

Je viens de corriger un problème similaire sur mon système. Vous devez reconstruire votre installation de Ruby 2.1.2 et elle se liera à nouveau avec le SSL nouvellement mis à jour.

$ 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
la source
Cela se produit après une nouvelle installation de ruby ​​1.9.3 via rvm. Nouveau Mac et une ancienne base de code. Ai-je besoin d'une version différente de openssl?
digidigo
8
@ douze17 Les erreurs sont liées à l'impossibilité de trouver une bibliothèque SSL et l'OP a mentionné qu'il avait récemment mis à niveau sa version installée d'openssl. J'ai eu le même problème avec le même scénario de mise à niveau; Je soupçonne que la réinstallation corrige des problèmes en provoquant la création de Ruby sur les bibliothèques mises à niveau (les anciennes ne peuvent pas être trouvées).
Ryan Dlugosz, le
7
Juste pour ajouter à cela, si un utilisateur de boxen rencontre cela - je n'ai pas pu réinstaller rbenv en utilisant les commandes ci-dessus - j'ai donc dû désinstaller et réinstaller 2.1.2 en utilisant rbenv rbenv uninstall 2.1.2 rbenv install 2.1.2 bundle
jeffsaracco
4
Après la mise à niveau de Yosemite, j'ai eu ce problème. Ce qui précède a fonctionné, mais seulement après avoir redirigé mon gcc. export CC=/usr/bin/gccPour plus d'informations: voici le problème de github de rbenv qui a aidé
Dan Williams
1
Si vous avez installé rbenv avec homebrew, vous devrez peut-être brew upgrade rbenv ruby-buildégalement le faire.
Justin Tanner
185

J'ai eu un problème similaire après la mise à niveau d'OpenSL. J'utilise rvm. J'ai regardé en mettant à niveau rvm.

$ rvm get stable

J'ai ensuite réinstallé 1.9.3.

rvm reinstall ruby-1.9.3-p545

Après la réinstallation, j'ai exécuté:

$ rvm gemset pristine

Si vous voyez des erreurs lors de la restauration de votre jeu de gemmes, votre meilleure option sera de vider le jeu de gemmes et de le reconstruire.

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

Si vous avez plusieurs jeux de gemmes, vous devrez répéter ces étapes pour chacun d'eux.

Sandeep M
la source
10
Cela a fonctionné pour moi. rvm a lancé automatiquement la construction du jeu de gemmes vierge.
Ducain
A travaillé pour moi sur Yosemite, je viens de courir: rvm get stableetrvm reinstall ruby-2.0.0
MatCarey
4
Sur Yosomite, j'ai eu un problème d'installation de ruby, car il n'est pas en mesure de trouver la bonne gccversion. Je me suis retrouvé avecCC=/usr/bin/gcc rvm reinstall ruby-1.9.3-p551
Alexander Beletsky
@MatCarey rvm get stableet a également rvm reinstall ruby-2.0.0travaillé dans Mavericks. Merci.
amertkara
Ce qui a fonctionné pour moi est rvm get stablesuivi par rvm install ruby-2.0.0-p598(puisque j'étais derrière quelques versions de correctifs). De plus, j'ai mis à jour .ruby-version, exécuté bundleet quitté mon répertoire de travail actuel ( cd ..) et y suis retourné ( cd -) avant de réussir foreman start.
user664833
17

Avoir le même problème pour 1.9.3-p547, sous rvm

rvm reinstall ruby-1.9.3-p547

Ruby est réinstallé, mais échoue dans la configuration d'un gemset_pristinepour l'application car

libv8 version 3.16.14.3 failed

c'est la raison pour laquelle je suis arrivé à ce point en premier lieu. Cercle de frustration vicieux ...

mise à jour
Vérifiez la version de votre plateforme. J'ai par exemple Darwin 10.8 et qui n'est pas répertorié ici . Donc, à moins que votre version du bijou libv8 ne dispose d'un binaire précompilé pour votre plate-forme, cela va prendre beaucoup de temps (très long). Sortez pour le dîner, un film, détendez-vous ... Si vous en demandez assez, peut-être qu'ils établiront une distribution binaire ...

Jérôme
la source
1
J'ai également besoin de support pour ruby ​​1.9.3 et j'utilise rvm, homebrewet xcodev6.1.1 sur Yosemite 10.10.2. J'ai utilisé juste rvm reinstall ruby-1.9.3-p394; après avoir compilé le nouveau rubis, RVM a rendu les gemmes vierges, sans aucun problème.
Tom Harrison
Oui, il est basé sur la distribution binaire. Le lien est là pour permettre à un premier de vérifier s'il obtiendra une réponse immédiate ou s'il part et médite!
Jerome
14

Eu la même erreur et l'a résolu par brew upgrade openssl

DaveWoodall.com
la source
5
avez-vous dû le faire brew link --force openssl?
kbrock
@kbrock, non, je ne l'ai pas fait.
DaveWoodall.com
7

Vous pourriez être un imbécile comme moi, avec plusieurs openssl

J'ai eu le même problème pour 2.1.2 et l'excellente réponse de Ryan Dlugosz n'est pas allée assez loin. Mon problème était que j'avais installé plusieurs versions de openssl (je pense que je l'avais installé via brew et git dans des projets précédents).

J'ai dû supprimer / opt / local / bin / openssl puis reconstruire 2.1.2.

Vérifiez Global Rbenv Ruby

$ rbenv global
2.1.2

Vérifier openssl

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

Kill off duplicate openssl

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

Reconstruire 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
la source
5

Quand n'a pas résolu le problème du tout, je suggère de supprimer RVM. Et réinstallez RVM et Rails.

suppression de RVM

Comment puis-je supprimer RVM (Ruby Version Manager) de mon système?

installation RVM, Rail

$ curl -L https://get.rvm.io | bash -s
$ rvm obtenir des
exigences
$ rvm stables $ 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 --version 4.0.5

Hajime
la source
4

Utilisateurs rbenv:

Il permet de s'assurer que vous utilisez la bonne version de ruby. Si vous réinstallez rbenv ou installez un nouveau ruby, passez à la version ruby ​​que vous venez d'installer:

$ rbenv local 2.1.3

désemparer
la source
1

Au cas où cela pourrait aider quelqu'un: j'avais installé une version plus récente de Ruby (2.1.2), et dans mon fichier de version .ruby, j'ai référencé l'ancienne (2.0.0-p353)

Changer mon fichier de version .ruby en 2.1.2 a résolu le problème pour moi.

lafeber
la source
1

J'ai eu un problème similaire, qui s'est produit après la mise à niveau vers ruby ​​2.2.2. Cependant, mon environnement est un peu différent et les solutions ci-dessus ne fonctionnent pas.

J'utilise:

  • OSX Yosemite (10.10.4)
  • chruby
  • ruby-install
  • openssl (installé via homebrew)

Les commandes suivantes ont résolu ce problème dans ma situation:

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

En plus des réponses d'acceptation ci-dessus, vous devrez peut-être dire à rbenv d'utiliser la nouvelle version installée. Par exemple, j'avais l'ancienne version dans ~ / .rbenv / version, donc rbenv utilisait toujours l'ancienne. La définition manuelle de la nouvelle version dans ce fichier (ou via la ligne de commande) devrait résoudre le problème.

rbenv install -f 2.1.2
rbenv versions
rbenv global 2.1.2 //sets global version to 2.1.2
adairdavid
la source
et si vous rencontrez des problèmes avec rbenv ne voyant pas les versions ultérieures, comme quelqu'un que je connais ... assurez-vous d'avoir mis à jour ruby-build. très probablement par brassage.
wkhatch