Símbolo de paquete de Ruby no encontrado: _SSLv2_client_method (LoadError)

249

Intenté hacer algunas actualizaciones a openssl usando homebrew y de alguna manera logré romper todo. No puedo hacer nada ahora, esto es lo que obtengo cuando intento hacer la instalación del paquete:

$ 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
fuente
2
SSLv2 está roto, por lo que casi no hay razón para tener código SSLv2_client_method. ¿Puedes abrir los archivos de Ruby y comentar las referencias a los métodos SSLv2? La causa subyacente está libsslen /usr/local/opt/openssl/libse ha configurado con no-ssl2(pero no debería ser un problema en el 2014).
jww

Respuestas:

287

Acabo de solucionar un problema similar en mi sistema. Necesita reconstruir su instalación de Ruby 2.1.2 y se volverá a vincular con el SSL recientemente actualizado.

$ 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
fuente
Esto sucede después de una nueva instalación de ruby ​​1.9.3 a través de rvm. Nueva Mac y una vieja base de código. ¿Necesito una versión diferente de openssl?
digidigo
8
@ doce17 Los errores están relacionados con la imposibilidad de encontrar una biblioteca SSL y el OP mencionó que habían actualizado recientemente su versión instalada de openssl. Tuve el mismo problema con el mismo escenario de actualización; Sospecho que la reinstalación arregla las cosas al hacer que Ruby se construya contra las bibliotecas actualizadas (no se pueden encontrar las antiguas).
Ryan Dlugosz
77
Solo para agregar a esto, si un usuario de boxen se encuentra con esto, no pude hacer que rbenv se reinstale usando los comandos anteriores, así que tuve que desinstalar y reinstalar 2.1.2 usando rbenv rbenv uninstall 2.1.2 rbenv install 2.1.2 bundle
jeffsaracco
44
Después de la actualización de yosemite, tuve este problema. Lo anterior funcionó, pero solo después de que redirigí mi gcc. export CC=/usr/bin/gccPara más información: aquí está el problema de github de rbenv que ayudó
Dan Williams
1
Si instaló rbenv con homebrew, es posible que también lo necesite brew upgrade rbenv ruby-build.
Justin Tanner
185

Tuve un problema similar después de actualizar openssl. Yo uso rvm. Lo miré actualizando rvm.

$ rvm get stable

Luego reinstalé 1.9.3.

rvm reinstall ruby-1.9.3-p545

Después de reinstalar, ejecuté:

$ rvm gemset pristine

Si ve algún error al restaurar su conjunto de gemas, su mejor opción será vaciar el conjunto de gemas y reconstruirlo.

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

Si tiene múltiples gemas, deberá repetir estos pasos para cada una de ellas.

Sandeep M
fuente
10
Esto funcionó para mí. rvm inició la construcción de gemas prístinas automáticamente.
Ducain
Trabajé para mí en Yosemite, simplemente corrí: rvm get stableyrvm reinstall ruby-2.0.0
MatCarey
44
En Yosomite tuve un problema al instalar Ruby, ya que no puede encontrar la gccversión correcta . Terminé conCC=/usr/bin/gcc rvm reinstall ruby-1.9.3-p551
Alexander Beletsky
@ MatCarey rvm get stabley rvm reinstall ruby-2.0.0trabajó en Mavericks también. Gracias.
amertkara
Lo que funcionó para mí es rvm get stableseguido por rvm install ruby-2.0.0-p598(ya que estaba detrás de algunas versiones de parche). Además, actualicé .ruby-version, ejecuté bundley salí de mi directorio de trabajo actual ( cd ..) y volví a él ( cd -) antes de ejecutarlo correctamente foreman start.
user664833
17

Tiene el mismo problema para 1.9.3-p547, bajo rvm

rvm reinstall ruby-1.9.3-p547

Ruby se vuelve a instalar, pero falla al configurar un gemset_pristinepara la aplicación porque

libv8 version 3.16.14.3 failed

esa fue la razón por la que llegué a este punto en primer lugar. Círculo de frustración viciosa ...

actualizar
Compruebe la versión de su plataforma. Tengo, por ejemplo, Darwin 10.8 y eso no se enumera aquí . Entonces, a menos que su versión de la gema libv8 tenga un binario precompilado para su plataforma, tomará mucho tiempo (mucho, mucho). Salga a cenar, al cine, relájese ... Si es suficiente, tal vez organizarán una distribución binaria ...

Jerome
fuente
1
También necesito soporte para ruby ​​1.9.3 y estoy usando rvm, homebrewy xcodev6.1.1 en Yosemite 10.10.2. Yo solía solo rvm reinstall ruby-1.9.3-p394; Después de compilar el nuevo rubí, RVM hizo las gemas impecables, sin problemas.
Tom Harrison
Sí, se basa en la distribución binaria. ¡El enlace está allí para permitir que uno verifique primero si obtendrán una respuesta inmediata o si van a meditar!
Jerome
14

Tuve el mismo error y lo resolvió por brew upgrade openssl

DaveWoodall.com
fuente
55
tuviste que hacerlo brew link --force openssl?
kbrock
@kbrock, no, no lo hice.
DaveWoodall.com
7

Puedes ser un idiota como yo, con múltiples aperturas

Tuve el mismo problema para 2.1.2 y la excelente respuesta de Ryan Dlugosz no fue lo suficientemente lejos. Mi problema era que tenía varias versiones de OpenSSL instalado (creo que había instalado a través brew y git en proyectos anteriores).

Tuve que eliminar / opt / local / bin / openssl y luego reconstruir 2.1.2.

Compruebe global rbenv ruby

$ rbenv global
2.1.2

Comprobar openssl

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

Eliminar duplicados openssl

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

Reconstruir 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
fuente
5

Cuando no resolvió el problema en absoluto, sugiero eliminar RVM. Y reinstale RVM y Rails.

eliminar RVM

¿Cómo puedo eliminar RVM (Ruby Version Manager) de mi sistema?

instalar RVM, Rail

$ curl -L https://get.rvm.io | bash -s
$ rvm obtener
requisitos estables de $ rvm
$ rvm install 2.0.0 --with-openssl-dir = $ HOME / .rvm / usr
$ rvm use 2.0.0 $ actualización de gemas - sistema 2.0.3
$ rieles de instalación de gemas --versión 4.0.5

Hajime
fuente
4

Usuarios de rbenv:

Ayuda a asegurarse de que está utilizando la versión correcta de ruby. Si reinstala rbenv o instala un nuevo ruby, cambie a la versión ruby ​​que acaba de instalar:

$ rbenv local 2.1.3

Dechimp
fuente
1

En caso de que pueda ayudar a alguien: tenía una versión más nueva de Ruby instalada (2.1.2), y en mi archivo de versión .ruby hice referencia a la anterior (2.0.0-p353)

Cambiar mi archivo de versión .ruby a 2.1.2 me solucionó el problema.

lafeber
fuente
1

Tuve un problema similar, que ocurrió después de actualizar a ruby ​​2.2.2. Sin embargo, mi entorno es un poco diferente, lo que hace que las soluciones anteriores no funcionen.

Estoy usando:

  • OSX Yosemite (10.10.4)
  • chruby
  • instalar ruby
  • openssl (instalado a través de homebrew)

Los siguientes comandos resolvieron esto en mi situación:

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

Además de las respuestas de aceptación anteriores, es posible que tenga que decirle a rbenv que use la versión recién instalada. Por ejemplo, tenía la versión anterior en ~ / .rbenv / version, por lo que rbenv siempre estaba usando la anterior. La configuración manual de la nueva versión en ese archivo (o mediante la línea de comando) debería solucionar el problema.

rbenv install -f 2.1.2
rbenv versions
rbenv global 2.1.2 //sets global version to 2.1.2
adairdavid
fuente
y si tiene problemas con rbenv para no ver versiones posteriores, como alguien que conozco hizo ... asegúrese de haber actualizado ruby-build. muy probablemente a través de la cerveza.
wkhatch