Simbolo del pacchetto Ruby non trovato: _SSLv2_client_method (LoadError)


249

Stavo tentando di fare alcuni aggiornamenti su openssl usando homebrew e in qualche modo sono riuscito a rompere tutto. Non posso fare nulla ora, questo è quello che ottengo quando provo a fare l'installazione del bundle:

$ 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 è rotto, quindi non c'è quasi alcun motivo per avere il codice SSLv2_client_method. Puoi aprire i file Ruby e commentare i riferimenti ai metodi SSLv2? La causa di fondo è libsslin /usr/local/opt/openssl/libstato configurato con no-ssl2(ma non dovrebbe essere un problema nel 2014).
jww

Risposte:


287

Ho appena risolto un problema simile sul mio sistema. Devi ricostruire la tua installazione di Ruby 2.1.2 e ricollegherà il nuovo SSL aggiornato.

$ 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

Questo succede dopo una nuova installazione di ruby ​​1.9.3 tramite rvm. Nuovo Mac e una vecchia base di codice. Ho bisogno di una versione diversa di openssl?
digidigo,

8
@ dodici17 Gli errori sono dovuti al fatto di non essere in grado di trovare una libreria SSL e l'OP ha affermato di aver recentemente aggiornato la versione installata di openssl. Ho avuto lo stesso problema con lo stesso scenario di aggiornamento; Ho il sospetto che la reinstallazione risolva le cose causando la creazione di Ruby rispetto alle librerie aggiornate (non è possibile trovare quelle vecchie).
Ryan Dlugosz,

7
Solo per aggiungere a questo, se un utente boxen si imbatte in questo - non sono riuscito a reinstallare rbenv usando i comandi sopra - quindi ho dovuto disinstallare e reinstallare 2.1.2 usando rbenv rbenv uninstall 2.1.2 rbenv install 2.1.2 bundle
jeffsaracco

4
Dopo l'aggiornamento di yosemite, ho avuto questo problema. Quanto sopra ha funzionato, ma solo dopo aver reindirizzato il mio gcc. export CC=/usr/bin/gccPer maggiori informazioni: ecco il problema github di rbenv che ha aiutato
Dan Williams,

1
Se hai installato rbenv con homebrew, potresti averne bisogno brew upgrade rbenv ruby-build.
Justin Tanner,

185

Ho avuto un problema simile dopo l'aggiornamento di openssl. Uso rvm. Ho fissato aggiornando rvm.

$ rvm get stable

Successivamente ho reinstallato 1.9.3.

rvm reinstall ruby-1.9.3-p545

Dopo la reinstallazione, ho eseguito:

$ rvm gemset pristine

Se vedi errori durante il ripristino del tuo set di gemme, l'opzione migliore sarà quella di svuotare il set di gemme e ricostruirlo.

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

Se hai più gemset, dovrai ripetere questi passaggi per ognuno di essi.


10
Questo ha funzionato per me. rvm ha dato il via automaticamente alla costruzione di gemset incontaminato.
Ducain,

Lavorato per me su Yosemite, ho appena corso: rvm get stableervm reinstall ruby-2.0.0
MatCarey il

4
Su Yosomite ho avuto problemi con l'installazione di ruby, poiché non è in grado di trovare la gccversione corretta . Ho finito conCC=/usr/bin/gcc rvm reinstall ruby-1.9.3-p551
Alexander Beletsky

@MatCarey rvm get stablee ha rvm reinstall ruby-2.0.0lavorato anche in Mavericks. Grazie.
Amertkara,

Ciò che ha funzionato per me è rvm get stableseguito da rvm install ruby-2.0.0-p598(poiché ero dietro alcune versioni di patch). Inoltre, ho aggiornato .ruby-version, eseguito bundleed abbandonato la mia directory di lavoro corrente ( cd ..) e sono tornato su di essa ( cd -) prima di eseguire correttamente foreman start.
user664833

17

Hanno lo stesso problema per 1.9.3-p547, sotto rvm

rvm reinstall ruby-1.9.3-p547

Ruby viene reinstallato, ma non riesce a configurare un gemset_pristineper l'applicazione perché

libv8 version 3.16.14.3 failed

che è stato il motivo per cui sono arrivato a questo punto in primo luogo. Circolo vizioso di frustrazione ...

aggiornamento
Controlla la versione della tua piattaforma. Ho ad esempio Darwin 10.8 e che non è elencato qui . Quindi, a meno che la tua versione della gemma libv8 non abbia un binario precompilato per la tua piattaforma, ci vorrà molto tempo (molto lungo). Uscire per cena, un film, rilassarsi ... Se basta chiedere, forse allestiranno una distribuzione binaria ...


1
Ho anche bisogno del supporto per ruby ​​1.9.3 e sto usando rvm, homebrewe xcodev6.1.1 su Yosemite 10.10.2. Ho usato solo rvm reinstall ruby-1.9.3-p394; dopo aver compilato il nuovo rubino, RVM ha reso le gemme incontaminate, anche senza problemi.
Tom Harrison

Sì, si basa sulla distribuzione binaria. Il link è lì per consentire a uno di controllare prima se riceveranno una risposta immediata o se ne andranno e mediteranno!
Girolamo


7

Potresti essere un cretino come me, con più openssl

Ho avuto lo stesso problema per la 2.1.2 e l'eccellente risposta di Ryan Dlugosz non è andata abbastanza lontano. Il mio problema era che avevo installato più versioni di openssl (penso che avevo installato attraverso brew e git in progetti precedenti).

Ho dovuto eliminare / opt / local / bin / openssl e quindi ricostruire 2.1.2.

Controlla il rubino rbenv globale

$ rbenv global
2.1.2

Controlla openssl

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

Uccidi openssl duplicati

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

Ricostruzione 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


4

utenti rbenv:

Aiuta a essere sicuro di utilizzare la versione corretta di ruby. Se reinstalli rbenv o installi un nuovo ruby, passa alla versione ruby ​​che hai appena installato:

$ rbenv local 2.1.3


1

Nel caso in cui potesse aiutare chiunque: avevo installato una versione più recente di Ruby (2.1.2) e nel mio file .ruby-version ho fatto riferimento a quella precedente (2.0.0-p353)

La modifica del mio file .ruby versione 2.1.2 ha risolto il problema per me.


1

Ho avuto un problema simile, che si è verificato dopo l'aggiornamento a ruby ​​2.2.2. Tuttavia, il mio ambiente è leggermente diverso e le soluzioni sopra non funzionano.

Sto usando:

  • OSX Yosemite (10.10.4)
  • chruby
  • ruby-install
  • openssl (installato tramite homebrew)

I seguenti comandi hanno risolto questo problema nella mia situazione:

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

0

Oltre alle risposte di accettazione sopra, potrebbe essere necessario dire a rbenv di utilizzare la versione appena installata. Ad esempio, avevo la vecchia versione in ~ / .rbenv / version, quindi rbenv usava sempre quella vecchia. L'impostazione manuale della nuova versione in quel file (o tramite la riga di comando) dovrebbe risolvere il problema.

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

e se hai problemi con rbenv che non vede versioni successive, come qualcuno che conosco ha fatto ... assicurati di aver aggiornato ruby-build. molto probabilmente attraverso la birra.
wkhatch,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.