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.

4 Answers 4

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.

https://github.com/DaemonF/brew-recursive-uninstall

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

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

Your Answer

 
discard

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