Posted By: Anonymous
I have a Homebrew formula that I wish to uninstall/remove along with all its dependencies, skipping packages whom other packages depend upon (a.k.a. Cascading package removal in Package manager parlance).
e.g. Uninstall package
a which depends on packages
c, where package
d also depends on package
c. The result should uninstall both
How can I do that?
There must be a way to uninstall a package without leaving unnecessary junk behind.
To install and use, issue the following commands:
$ brew tap beeftornado/rmtree $ brew rmtree <package>
See the above link for more information and discussion.
It appears that currently, there’s no easy way to accomplish this.
However, I filed an issue on Homebrew’s GitHub page, and somebody suggested a temporary solution until they add an exclusive command to solve this.
There’s an external command called
brew leaves which prints all packages that are not dependencies of other packages.
If you do a logical and on the output of
brew leaves and
brew deps <package>, you might just get a list of the orphaned dependency packages, which you can uninstall manually afterwards. Combine this with
xargs and you’ll get what you need, I guess (untested, don’t count on this).
EDIT: Somebody just suggested a very similar solution, using
join instead of
brew rm FORMULA brew rm $(join <(brew leaves) <(brew deps FORMULA))
See the comment on the issue mentioned above for more info.