Wie kann ich Abhängigkeiten in Homebrew rekursiv entfernen?


8

Ich probiere Homebrew aus, aber ich kann beim Deinstallieren einer 'Formel' anscheinend nicht herausfinden, wie ich die Abhängigkeiten auch rekursiv entfernen kann. Dh Macports ist:

$ port uninstall --follow-dependencies <portname>

Wie funktioniert das mit Homebrew?

Antworten:


6

Eine einfache Möglichkeit, das Problem der Anhäufung von Abhängigkeiten deinstallierter Dinge zu lösen, besteht darin, regelmäßig gebrühte Blätter auszuführen, sie mit einer Liste der gewünschten Blätter zu vergleichen und alles andere rekursiv zu entfernen.

Folgendes funktioniert, ist aber natürlich nicht sehr lesbar:

1) Zeigen Sie alle Blätter abzüglich der Blätter in Ihrer Fahndungsliste:

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

2) Wenn Sie die Liste angepasst haben (dh neue Keeper hinzugefügt haben), entfernen Sie den Rest:

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

Dies muss normalerweise einige Male hintereinander aufgerufen werden, um alle zu erhalten, und auf den letzten Anruf sollte ein folgen

$ brew cleanup

Um ein bisschen zu verschönern, kann die Liste der Halter natürlich irgendwo in einer Datei aufbewahrt werden.


Wenn Sie davon ausgegangen sind, dass alles in /usr/local/binmit einem "gesuchten" Element verknüpft ist, können Sie die Suchliste möglicherweise programmgesteuert generieren. Sie würden reine Bibliotheksinstallationen vermissen, aber vielleicht einfacher als eine Handliste der gesuchten Elemente zu führen.
Ian C.



1

Ich habe gerade ein kleines Wrapper-Skript geschrieben, um diese Funktionalität zum Brauen hinzuzufügen. Geben Sie es in Ihre .bashrc-Datei ein und verfolgen Sie, welche Pakete Sie installieren. Entfernen Sie dann rekursiv nicht benötigte Abhängigkeiten, wenn Sie es deinstallieren.

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.