Das MacPorts-Verzeichnis /opt/local/var/macports/software
ist wirklich voll mit "Sachen":
Können alle .tbz2
Dateien gelöscht werden?
Mir geht der Speicherplatz auf der SSD aus.
Das MacPorts-Verzeichnis /opt/local/var/macports/software
ist wirklich voll mit "Sachen":
Können alle .tbz2
Dateien gelöscht werden?
Mir geht der Speicherplatz auf der SSD aus.
Antworten:
Ja, alle Dateien in diesem Ordner mit in ${prefix}/var/macports/software/
können gelöscht werden. Dies sind die Installationspakete für Programme, die Sie mit MacPorts installiert haben. MacPorts lädt diese nach Bedarf erneut herunter, wenn die Installation oder vermutlich auch der Upgrade-Befehl für ein bestimmtes Programm usw. Ausgeführt wird.
Die Beschreibung des Verwendungszwecks des Verzeichnisses ... finden Sie im MacPorts-Handbuch unter Binärarchive .
3.4.1. Binärarchiv
Binäre Archive können nur auf einem Zielsystem verwendet werden, auf dem MacPorts ausgeführt wird. Mit binären Archiven können MacPorts-Dienstprogramme nach der Zerstörungsphase mit der Installation beginnen und einen Port auf dem Zielsystem installieren und aktivieren. Binäre Archive werden bei jeder Installation eines Ports erstellt und können auch von einem Server heruntergeladen werden.
...
Binäre Archivdateien werden in $ {Präfix} / var / macports / software / abgelegt. Der Archivdateityp wird in der Datei macports.conf festgelegt. Das Standardformat ist .tbz2; Andere Optionen sind: tar, tbz, tbz2, tgz, tlz, txz, xar, zip, cpgz, cpio.
Bevor Sie Dateien manuell im Verzeichnis "Software" löschen, sollten Sie den Befehl ausführen sudo port uninstall inactive
. Der Befehl entfernt alle inaktiven Archive aus "Software". Wenn Sie danach Dateien manuell aus „Software“ löschen, löschen Sie aktive Archive. Ich bin mir nicht sicher, ob das viel Schaden anrichtet, aber ich bin mir auch nicht sicher, ob es harmlos ist.
Der MacPorts-Befehl "Installieren" durchläuft mehrere Phasen , wobei die letzten beiden Phasen "Installieren" und "Aktivieren" sind:
install : Archiviert die zerstörten Dateien eines Ports in
${prefix}/var/macports/software
. […]Aktivieren : Extrahieren Sie die Dateien des Ports aus dem Archiv
${prefix}/var/macports/software
an die endgültig installierten Speicherorte, normalerweise im Inneren${prefix}
.
Das Verzeichnis "Software" kann Archive enthalten, die nicht aktiv sind, insbesondere alte Versionen von Ports, die Sie aktualisiert haben, da der Befehl "Upgrade" alte Versionen standardmäßig nicht entfernt :
upgrade
deinstalliert nicht die alte Version eines Ports. Stattdessen wird es deaktiviert […]. Auf diese Weise können Sie zur älteren Version zurückkehren, wenn bei der aktualisierten Version ein Problem auftritt. […] Wenn Sie die alten Versionen während des Upgrades nicht beibehalten möchten, können Sie-u
beim Upgrade Folgendes ausführen: […] Wir empfehlen jedoch, die älteren Versionen für eine Weile beizubehalten und ab und zu auszuführensudo port uninstall inactive
.
In den häufig gestellten Fragen zu MacPorts wird lediglich empfohlen, den Befehl "Deinstallieren" zu verwenden, um unerwünschte Dateien in "Software" zu entfernen:
Wofür sind die Ordner vorgesehen
${prefix}/var/macports/
und warum nehmen sie so viel Platz ein?
[…]
Software: Enthält die komprimierten Archive der installierten Software. Wenn ein Port aktiviert ist, werden seine Dateien${prefix}
aus den komprimierten Dateien hier in die Ordner extrahiert .port uninstall <port> <version>+<variant>
würde es von hier entfernen, aber dann kann dieser Port nicht mehr verwendet werden.
Es scheint keinen Schalter für den Befehl "deinstallieren" zu geben, um ein Archiv von "Software" zu deinstallieren, ohne es zuerst zu deaktivieren, wenn es sich um das aktive Archiv handelt. Daher gehe ich davon aus, dass es auch keine gute Idee ist, aktive Archive manuell aus „Software“ zu entfernen.
Wie Rinzwind sagte, können Sie alle inaktiven Versionen von Ports deinstallieren (dh löschen), die durch Upgrades zurückgelassen wurden:
port uninstall inactive
Wenn Sie einen Port installieren, werden alle seine Abhängigkeiten installiert. Wenn Sie einen Port deinstallieren, werden seine Abhängigkeiten nicht deinstalliert. Sie können sie mit dem Dienstprogramm cutleaves deinstallieren:
port install port_cutleaves
port_cutleaves
Dadurch werden jeweils nur eine Schicht veralteter Abhängigkeiten entfernt. Um sie alle zu entfernen, benutze ich eine hackige Pipeline:
while ! yes u | port_cutleaves -b | grep 'There are no new leaves to process.'; do : ; done
Sie können alle Build-bezogenen Dateien (Arbeitsdateien, Verteilungsdateien, temporäre Archive und Protokolle) für deinstallierte Ports entfernen:
port clean --all uninstalled
So entfernen Sie nur die Arbeitsdateien für installierte Ports:
port clean installed
Die Reinigung scheint jeden einzelnen Port im Baum zu berühren. Ich weiß nicht, was dort los ist.
sudo port upgrade outdated
diese Dateien immer bereinigen, wenn sie fertig sind. TIA!