Я пробую Homebrew, но при удалении «формулы» я не могу понять, как рекурсивно удалить зависимости. Т.е. Macports это:
$ port uninstall --follow-dependencies <portname>
Как это работает с Homebrew?
Простой способ решить проблему накопления зависимостей удаленных вещей — периодически запускать brew leaf и сравнивать его со списком требуемых листьев, а все остальное рекурсивно удалять.
Следующее работает, но, конечно, не очень читабельно:
1) Показать все листья за вычетом тех, что находятся в вашем списке розыска:
$ brew leaves | egrep -v 'bcwipe|brew-cask|lftp|mmv|mobile-shell|mplayer|node|octave|python|zsh'
2) После того, как вы откорректировали список (т.е. добавили новых хранителей), избавьтесь от остальных:
$ brew uninstall `brew leaves|egrep -v 'bcwipe|brew-cask|git|lftp|mmv|mobile-shell|mplayer|node|octave|python|zsh'`
Обычно это нужно вызывать несколько раз подряд, чтобы получить их все, а за последним вызовом должен следовать
$ brew cleanup
Чтобы немного украсить, список хранителей, конечно, можно хранить где-нибудь в файле.
Как сказал @Adam Vandenberg, нет простого способа сделать это.
Тем не менее, я зарегистрировал проблему на странице GitHub Homebrew , и, похоже, есть обходной путь для решения этой проблемы, пока они не добавят эксклюзивную команду.
См. мой ответ на StackOverflow для получения дополнительной информации.
В 2021 году теперь вы можете использовать brew autoremove
: https://docs.brew.sh/Manpage#autoremove---dry-run
К сожалению, Homebrew не отслеживает зависимости таким образом.
Я только что написал небольшой скрипт-обертку, чтобы добавить эту функциональность в brew. Загрузите его в свой .bashrc, и он будет отслеживать, какие пакеты вы устанавливаете, а затем рекурсивно удалять ненужные зависимости при удалении.
Ян С.
/usr/local/bin
нем привязано к «разыскиваемому» элементу, возможно, вы сможете программно сгенерировать разыскиваемый список. Вы бы пропустили чистую установку библиотеки, но, возможно, это проще, чем поддерживать список нужных элементов вручную.только густи