Installing Ruby <= 2.3 on Ubuntu 20.04+

Updated . Posted . Visible to the public. Deprecated.

This is not a good solution when you also use a gem like pg or mysql, which also builds against OpenSSL. Upgrade your Ruby version or run your legacy app in a Docker container instead.

Installing old Rubies (<= 2.3) with a standard rbenv + ruby-build is no longer possible on Ubuntu 20.04. This is because those Rubies depend on OpenSSL 1.0 which is no longer shipped with current Ubuntus.

We have forked ruby-build Show archive.org snapshot with a workaround that makes it compile and statically link the latest OpenSSL 1.0 version. This works on Ubuntu 20.04, as well as on Ubuntu 18.04.

To switch to our fork of ruby-build, update ruby-build like this

git -C ~/.rbenv/plugins/ruby-build remote add makandra https://github.com/makandra/ruby-build.git
git -C ~/.rbenv/plugins/ruby-build fetch makandra
git -C ~/.rbenv/plugins/ruby-build checkout makandra/local-openssl-for-old-rubies

At makandra, this comes preinstalled on new developer PCs.

Now "rbenv install 1.8.7-p375" etc. will use the workaround and hopefully just work.

Note: When you try to install a very current Ruby version, our fork might not know about it. In this case, see this card

Tobias Kraze
Last edit
Marius Schuller
License
Source code in this card is licensed under the MIT License.
Posted by Tobias Kraze to makandra dev (2020-10-08 08:38)