Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

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 stackoverflow.com Aug 8 '11 at 10:24

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

3 Answers 3

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

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 at 21:08

Unfortunately, Homebrew does not track dependencies in this way.

share|improve this answer

Your Answer

 
discard

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