Ask Different is a question and answer site for power users of Apple hardware and software. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm trying out Homebrew, but I can't seem to figure out when uninstalling a 'formula', how to recursively remove the dependencies as well. I.e. Macports is:

$ port uninstall --follow-dependencies <portname>

How does this work with Homebrew?

share|improve this question

migrated from Aug 8 '11 at 10:24

This question came from our site for professional and enthusiast programmers.

A simple way to solve the problem of accumulating dependencies of deinstalled things is to periodically run brew leaves and compare it against a list of wanted leaves, and recursively remove everything else.

The following works, but of course is not very readable:

1) Show all the leaves minus the ones in your wanted list:

$ brew leaves | egrep -v 'bcwipe|brew-cask|lftp|mmv|mobile-shell|mplayer|node|octave|python|zsh'

2) Once you have adjusted the list (i.e. added new keepers), get rid of the rest:

$ brew uninstall `brew leaves|egrep -v 'bcwipe|brew-cask|git|lftp|mmv|mobile-shell|mplayer|node|octave|python|zsh'`

This usually has to be called a few times in a row to get them all, and the final call should be followed by a

$ brew cleanup

To beautify a bit, the list of keepers can of course be kept in a file somewhere.

share|improve this answer
If you assumed everything in /usr/local/bin was tied to a "wanted" item, you might be able to programmatically generate the wanted list. You'd miss pure library installations, but maybe easier than maintaining a hand list of wanted items. – Ian C. May 19 '14 at 21:08

Like @Adam Vandenberg said, there's no easy way to do it.

However, I filed an issue on Homebrew's GitHub page, and it appears there's a workaround to solve this, until they add an exclusive command.

See my answer on StackOverflow for more info.

share|improve this answer

Unfortunately, Homebrew does not track dependencies in this way.

share|improve this answer

I just wrote a small wrapper script to add this functionality to brew. Source it in your .bashrc and it will track which packages you install, then recursively remove unneeded dependencies when you uninstall.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.