Given the recent OpenSSL scare I'm trying to clean out older versions from my machines but Homebrew won't let me:

$ brew dirty
openssl (1.0.1e, 1.0.1f, 1.0.1g)
$ brew cleanup openssl
Warning: Skipping (old) keg-only: /usr/local/Cellar/openssl/1.0.1e
Warning: Skipping (old) keg-only: /usr/local/Cellar/openssl/1.0.1f
$ brew dirty
openssl (1.0.1e, 1.0.1f, 1.0.1g)

How can I purge these old versions of OpenSSL from my Mac?

1 Answer 1


As of Homebrew f4d2141 there is a --force option.

brew cleanup --force openssl

References: man brew

  • Ya, but are some applications compiled using the old versions of OpenSSL? And if so what will happen to those applications?!? Or, better put, what does "keg-only" mean?
    – Meltemi
    Apr 24, 2014 at 19:57
  • See here and the FAQ for explanations of keg-only packages. If an application is complied against a keg-only package that goes missing, it may very well break. But then, the point of this is that you don't want things linking to openssl < 1.0.1g anyway. Broken is better than insecure.
    – StvnW
    Apr 24, 2014 at 20:03
  • Can I identify what other software may be linking to those older libraries?
    – Meltemi
    Apr 24, 2014 at 20:13
  • 1
    You can't query a library to see what is linked against it, but you can do the reverse; inspect a binary to see what it depends on using otool -L. In your example though you can safely remove 1.0.1e and 1.0.1f since they both compile to the same library file as 1.0.1g (libssl-1.0.0.dylib, which is symlinked to libssl.dylib). Put another way, applications aren't linking to a specific point release of libssl. If you've installed 1.0.1g then this should satisfy anything in the brew ecosystem that was depending on 1.0.1(e|f).
    – StvnW
    Apr 24, 2014 at 21:51

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .