15 votes

Comment puis-je supprimer les dépendances de manière récursive dans Homebrew ?

J'essaie Homebrew, mais je n'arrive pas à comprendre comment, lors de la désinstallation d'une "formule", supprimer récursivement les dépendances. Par exemple, Macports est :

$ port uninstall --follow-dependencies <portname>

Comment cela fonctionne-t-il avec Homebrew ?

9voto

Toby Points 191

Une façon simple de résoudre le problème de l'accumulation de dépendances de choses désinstallées est de lancer périodiquement brew leaves et de le comparer à une liste de feuilles souhaitées, et de supprimer récursivement tout le reste.

Le texte suivant fonctionne, mais n'est bien sûr pas très lisible :

1) Montrez toutes les feuilles moins celles de votre liste de souhaits :

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

2) Une fois que vous avez ajusté la liste (c'est-à-dire que vous avez ajouté de nouveaux éléments à conserver), débarrassez-vous du reste :

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

Il faut généralement l'appeler plusieurs fois de suite pour les obtenir tous, et l'appel final doit être suivi d'un

$ brew cleanup

Pour embellir un peu, la liste des gardes peut bien sûr être conservée dans un fichier quelque part.

0 votes

Si tu supposais que tout dans /usr/local/bin était lié à un élément "recherché", vous pourriez être en mesure de générer par programme la liste des éléments recherchés. Il vous manquerait les installations de la bibliothèque, mais ce serait peut-être plus facile que de maintenir une liste manuelle d'articles recherchés.

0 votes

Une solution très simple

4voto

Ryan Hayes Points 703

Comme l'a dit @Adam Vandenberg, il n'y a pas de moyen facile de le faire.

Cependant, je a déposé un problème sur la page GitHub de Homebrew et il semble qu'il existe une solution de contournement pour résoudre ce problème, jusqu'à ce qu'ils ajoutent une commande exclusive.

Ver ma réponse sur StackOverflow pour plus d'informations.

0 votes

La commande exclusive est-elle déjà développée ?

4voto

i-know-nothing Points 21

En 2021, vous pouvez désormais utiliser brew autoremove : https://docs.brew.sh/Manpage#autoremove---dry-run

2voto

Mark Renouf Points 13128

Malheureusement, Homebrew ne suit pas les dépendances de cette manière.

1voto

danimo Points 29

Je viens d'écrire un petit wrapper script pour ajouter cette fonctionnalité à brew. Sourcez-le dans votre .bashrc et il suivra les paquets que vous installez, puis supprimera récursivement les dépendances inutiles lorsque vous désinstallez.

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X