Instalar versiones viejas de Ruby en Ubuntu 22.04

Instalación de versiones viejas de Ruby sobre linux Ubuntu 22.04
Instalación de Ruby sobre Ubuntu 22.04

Recientemente actualice mi sistema a Ubuntu 22.04 sobre mi laptop principal, donde trabajo con algunas versiones de Rails por algunas aplicaciones que aun mantengo, por lo que ocupo diferentes versiones de Ruby como 3.0, 2.7 y 2.6.

El primer problema que me encontré es que ahora Ubuntu 22.04 hace uso de OpenSSL 3.0, pero las versiones de Ruby desde la 3.0 hacia abajo utilizan OpenSSL 1.1 por lo que causara errores que no serán tan fáciles de resolver, sobre todo porque la mayoría de instaladores de Ruby tratan de compilarlo, pero causara problemas al no resolver muchas funciones que ya no existen en OpenSSL 3.0.

Compilar OpenSSL 1.1

Para la guía yo estoy utilizando chruby y ruby-install, pero no debería diferir mucho a cualquier otro instalador o administrador de Ruby.

Primero descargaremos OpenSSL 1.1.1q y extraerlo:

$ wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz
$ tar zxvf openssl-1.1.1q.tar.gz

Una vez extraído necesitaremos configurar donde queremos que se instale, en mi caso lo pondré sobre una carpeta oculta en mi carpeta personal ~/.openssl/[versión]

$ cd openssl-1.1.1q
$ ./config --prefix=$HOME/.openssl/openssl-1.1.1q --openssldir=$HOME/.openssl/openssl-1.1.1q

$ make
$ make test

$ make install

Como no se tienen certificados sobre esta versión, vamos a tener que enlazar los certificados que se tienen actualmente sobre OpenSSL:

$ rm -rf ~/.openssl/openssl-1.1.1q/certs
$ ln -s /etc/ssl/certs ~/.openssl/openssl-1.1.1q/certs

Instalar Ruby

Una vez tengamos OpenSSL 1.1.1q instalado, podremos instalar la versión de Ruby que necesitemos, pero deberemos decirle al instalador donde se encuentra la versión de OpenSSL que queremos que utilice (la mayoría requiere de la bandera --with-openssl-dir), dejo como se usa sobre ruby-install pero seria algo muy parecido sobre cualquier otro instalador o administrador de Ruby.

$ ruby-install 2.6.5 -- --with-openssl-dir=$HOME/.openssl/openssl-1.1.1q

Y eso seria todo. Ahora ya tendrías instalada una versión vieja de Ruby sobre Ubuntu 22.04.

Deja un comentario