Posted 5 months ago. Visible to the public. Deprecated.

Installing Ruby <= 2.3 on Ubuntu 20.04+

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 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 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

Does your version of Ruby on Rails still receive security updates?
Rails LTS provides security patches for old versions of Ruby on Rails (3.2 and 2.3).

Owner of this card:

Tobias Kraze
Last edit:
about 1 month ago
by Henning Koch
About this deck:
We are makandra and do test-driven, agile Ruby on Rails software development.
License for source code
Posted by Tobias Kraze to makandra dev
This website uses short-lived cookies to improve usability.
Accept or learn more