ruby openssl rvm

Ruby usa la versión incorrecta de openssl



rvm (1)

$ brew install openssl Warning: openssl-1.0.2a-1 already installed $ openssl version OpenSSL 0.9.8zd 8 Jan 2015 $ ruby -ropenssl -e ''puts OpenSSL::OPENSSL_VERSION'' OpenSSL 1.0.1j 15 Oct 2014 $ rvm -v rvm 1.26.11 (latest) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]

Veo muchas discrepancias entre las versiones de openssl. Homebrew piensa que está en 1.0.2a-1 , openssl mismo piensa que está en 0.9.8zd , y Ruby cree que está en 1.0.1j . ¡Ni siquiera sé si alguno de estos está realmente actualizado!

¿Cómo puedo resolver esta discrepancia y conseguir que Ruby use la versión correcta de OpenSSL? El hecho de que esté usando la versión incorrecta me impide usar API seguras.


Instalar OpenSSL con HomeBrew no lo vinculará inmediatamente como el OpenSSL predeterminado.

Primero, veamos qué versión estás usando (el 10 de julio, ''15 la última versión es 1.0.2d ):

openssl version -a which openssl ruby -r openssl -e ''puts OpenSSL::OPENSSL_VERSION''

Ahora, asegurémonos de actualizar OpenSSL a la última versión:

brew update brew install openssl brew unlink openssl brew link --force openssl

Si ejecuta las comprobaciones iniciales nuevamente, debería ver los 2 primeros apuntando al OpenSSL recién instalado. Ruby probablemente aún apuntará al anterior ya que fue compilado con él.

Si está apuntando a la versión anterior, recompilemos a Ruby y apúntelo a la nueva. Y solo para asegurarnos de que usará la versión correcta, aprobemos el prefijo OpenSSL, aunque esto no debería ser necesario ya que vinculamos el OpenSSL de homebrew.

rvm get stable rvm install ruby-2.1.6 --with-openssl-dir=`brew --prefix openssl`

(o rvm reinstall si ya está usando 2.1.6)

Esto debería hacerlo.