A little brew helper to remove non needed formulas
Posted on
Problem
One of the annoying things about the Homebrew package manager are garbage dependencies. Sometimes, a formula switches from a source-only version to a bottle, so its build dependencies are no longer required. Sometimes, a formula simply switches from one library to another.
Let's take one example: the include-what-you-use
formula depends on llvm
.
If you run brew upgrade
at a time when llvm
already has version N,
but include-what-you-use
still depends on version N-1,
you will end up with two versions of llvm
.
Some time will go by, and include-what-you-use
will depend on llvm
version N.
So, what now? Do we need llvm
N-1
? There's an easy way to check: just try removing it and homebrew will tell you.
But I like to see which formulas are not used as dependencies in my system using some simple command.
Helper
So I wrote a little helper for this task. Here is how to use it:
$ brew-helper list
...
llvm@16 <- here is an old version of llvm (at the moment of this writing the current version is 17)
...
Let's get rid of it:
$ brew-helper rm-dep llvm@16
Removing llvm@16
Found new unused dep: six
Removing six
As you can see, after the removal of llvm@16
, a new garbage dependency has appeared (six
). And our helper has gotten rid of it too.
Hope you find it usefull.