Bereinigung der MacPorts-Software: / opt / local / var / macports / software

8

Das MacPorts-Verzeichnis /opt/local/var/macports/softwareist wirklich voll mit "Sachen":

Können alle .tbz2Dateien gelöscht werden?

Mir geht der Speicherplatz auf der SSD aus.

Robottinosino
quelle

Antworten:

7

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.

MrDaniel
quelle
Gibt es eine Möglichkeit, dies automatisch durchführen zu lassen? Ich meine, einige Konfigurationen, die sudo port upgrade outdateddiese Dateien immer bereinigen, wenn sie fertig sind. TIA!
Akim
Aus der offiziellen Beschreibung ist mir nicht klar, dass MacPort diese binären Archive irgendwann nicht mehr benötigt. Aus der Diskussion unter trac.macports.org/wiki/howto/ShareArchives2 geht jedoch hervor , dass diese Binärarchive verwendet werden können, wenn Sie mehrere Computer haben: Sie führen die Kompilierung auf einem Computer durch und können dann das Ergebnis freigeben . Wenn dies ihr einziger Zweck ist, ist das Löschen offensichtlich in Ordnung.
Eric O Lebigot
0

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/softwarean 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 :

upgradedeinstalliert 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 -ubeim Upgrade Folgendes ausführen: […] Wir empfehlen jedoch, die älteren Versionen für eine Weile beizubehalten und ab und zu auszuführen sudo 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.

Rinzwind
quelle
0

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.

Tom Anderson
quelle