Erro ao compilar ruby 2.5, 2.6, 2.7 e 3.0 no Ubuntu
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