Install Ruby 2.7.5 using RVM on Ubuntu 22.04
RVM is a great tool to manage multiple versions of Ruby when working on projects.
I was working on a Rails project which was using Ruby 2.7.5, so tried to install it using RVM’s standard installation process:
rvm install 2.7.5. It fails, and in the log file you can see this:
+ command gem install /home/nilesh/.rvm/gem-cache/gem-wrappers-1.4.0.gem --local --no-document ERROR: Loading command: install (LoadError) cannot load such file -- openssl ERROR: While executing gem ... (NoMethodError) undefined method `invoke_with_build_args' for nil:NilClass
After a bit of digging around in the issues mentioned on Github of RVM and rbenv, I found that Ruby 2.7.5 needs OpenSSL 1.1, but Ubuntu 22.04 comes with OpenSSL 3.0. One reference: Failed to build ruby 2.7.5 on ubuntu 22.04.
And thus, the solution:
wget https://www.openssl.org/source/openssl-1.1.1t.tar.gz tar xf openssl-1.1.1t.tar.gz cd openssl-1.1.1t ./config --prefix=/usr/local/openssl1.1.1t --openssldir=/usr/local/openssl1.1.1t/etc make -j$(nproc) make -j$(nproc) install
After installation, configure the custom OpenSSL installation to point to the system CA certificates to avoid downloading the CA certificates separately:
cd /usr/local/openssl1.1.1t/etc rmdir certs ln -s /etc/ssl/certs certs
Now, for Ruby 2.7.5 installation:
rvm install 2.7.5 --with-openssl-dir=/usr/local/openssl1.1.1t
This installs successfully. Enjoy working on your project 😀