Instalar Ruby con una versión de openssl específica

December 10, 2025 23:34 — openssl, ruby

Hace poco descubrí Sendamatic, un servicio para enviar emails transaccionales con un precio decente, y decidí usarlo en varios de mis proyectos.

Configuré Rails para usar Action Mailer. Todo estaba bien configurado, porque en producción funcionaba, pero en local me daba un error de SSL cada vez que intentaba enviar un email.

Encontré la solución en Github. El problema es una incompatibilidad de mis versiones locales de openssl y ruby. La solución es decirle al instalador de ruby qué openssl quieres usar.

Como uso rbenv para gestionar mis versiones de ruby y brew para instalar programas, he de instalar nuevas versiones de ruby con el siguiente comando:

RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix [email protected])" rbenv install 3.4.7

En el trabajo uso mise y el comando necesario es el siguiente:

MISE_RUBY_BUILD_OPTS="--with-openssl-dir=$(brew --prefix [email protected])" mise install

En mi caso tengo openssl 3.6 en local y parece que no es compatible con ruby 3.4 y posteriores, así que uso la 3.5 que no me ha dado problemas.

Para comprobar qué versión de openssl usa tu versión actual de ruby hay unos cuantos comandos que son útiles.

ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'
ruby -ropenssl -e 'puts OpenSSL::OPENSSL_LIBRARY_VERSION rescue puts "N/A"'
ruby -rrbconfig -e 'puts RbConfig::CONFIG["configure_args"]'

Este último comando escupe un montón de cosas. Busca por algo como --with-openssl-dir=/opt/homebrew/opt/[email protected].

Me ha pasado dos veces, y a la tercera he decidido dejarlo por escrito. Me volverá a pasar.

Comentarios

Nadie ha comentado nada por ahora.

Deja un comentario