OpenSSL 1.1 is deprecated: how this affects your Ruby projects
If you run “brew doctor” right now in your terminal, chances are you will see this warning:
Warning: Some installed formulae are deprecated or disabled. You should find replacements for the following formulae: firstname.lastname@example.org
That’s because OpenSSL 1.1 reached end of life on September 11, 2023. For now, this is just a warning and will probably not affect your work. However, at some point, Homebrew will disable OpenSSL 1.1.
If you already have it installed, and then Homebrew disables it, I believe you will still be able to use it, but I’m not 100% sure. If you don’t already have it installed, whether it’s because you uninstalled it or you’re setting up a Mac that doesn’t already have it, you won’t be able to install it anymore via Homebrew once they disable it.
What does this mean for you?
Not being able to install OpenSSL 1.1 via Homebrew means it will be harder for you to install Ruby versions between and including 2.4.x and 3.0.x. It’s also possible that some of your other dev tools depend on OpenSSL 1.1. For the tools that were installed with Homebrew, you can check if any of them depend on OpenSSL 1.1 by running this command:
brew uses --installed email@example.com
If you don’t think you will ever need Ruby versions less than 3.1, then you probably don’t have to worry about this. Otherwise, if you have projects that are currently using older Ruby versions, or if you think you might one day work on a legacy project, here are your options:
- Update your project to Ruby 3.1.x or greater. I wrote a detailed step-by-step guide for updating the Ruby version in your project.
- Use a version manager that installs OpenSSL for you, separately from Homebrew. Examples include asdf and rbenv (they both use ruby-build to install Ruby). One of the downsides is that this slows down the Ruby installation.
- Buy Ruby on Mac Ultimate, which can install OpenSSL 1.1 for you, even after it’s been disabled by Homebrew. Ultimate also installs Ruby twice as fast as asdf and rbenv. The best part is that it works with all version managers. So, if you have a strong preference for asdf, chruby, frum, rbenv, or rvm, you can still use them to switch between Rubies, set the global and local version, etc, while taking advantage of Ruby on Mac’s faster and more reliable installation.