banner

Desde o Ubuntu 22.04, versões mais antigas da linguagem Ruby como 2.5, 2.6, 2.7 e 3.0 dão erro ao serem compiladas por usarem OpenSSL 1.1, que nas versões atuais foi substituído pela versão 3.

Então, se você tentar instalar alguma dessas versões usando o rvm, você vai ver vários erros falando que alguma coisa is deprecated: Since OpenSSL 3.0.

Mas é possível compilar o OpenSSL 1.1 e fazer o rvm usar essa versão.

Primeiro veja se você tem o pacote build-essentials instalado:

sudo apt install build-essential

Daí vamos baixar o OpenSSL 1.1.1w, compilar e instalar localmente:

cd ~/Downloads
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar zxvf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
./config --prefix=$HOME/.openssl/openssl-1.1.1w --openssldir=$HOME/.openssl/openssl-1.1.1w
make
make install
rm -rf ~/.openssl/openssl-1.1.1w/certs
ln -s /etc/ssl/certs ~/.openssl/openssl-1.1.1w/certs
cd ~

Agora sim podemos prosseguir e instalar o Ruby (exemplo com Ruby 3.0.4):

rvm install ruby-3.0.4 --with-openssl-dir=$HOME/.openssl/openssl-1.1.1w