La directory MacPorts /opt/local/var/macports/software
è davvero piena di "cose":
Possono essere cancellati tutti i file .tbz2
?
Sto esaurendo lo spazio sul SSD.
La directory MacPorts /opt/local/var/macports/software
è davvero piena di "cose":
Possono essere cancellati tutti i file .tbz2
?
Sto esaurendo lo spazio sul SSD.
Sì, è possibile eliminare tutti i file contenuti nella cartella con ${prefix}/var/macports/software/
. Questi sono i pacchetti di installazione per i programmi installati con MacPorts. MacPorts scaricherà nuovamente quelli necessari quando si esegue l'installazione o presumibilmente anche il comando di aggiornamento per un dato programma, ecc.
La descrizione dello scopo della directory ... è indicata nella Guida MacPorts in archivi binari .
3.4.1. Binary Archives
Binary archives can only be used on a target system running MacPorts. Binary archives allow MacPorts utilities to begin installation after the destroot phase and install and activate a port on the target system. Binary archives are created whenever a port is installed, and can also be downloaded from a server.
...
Binary archive files are placed in ${prefix}/var/macports/software/. The archive file type is set in the macports.conf file. The default format is .tbz2; other options are: tar, tbz, tbz2, tgz, tlz, txz, xar, zip, cpgz, cpio.
Prima di eliminare i file manualmente nella directory "software", suggerirei di eseguire il comando sudo port uninstall inactive
. Il comando rimuoverà tutti gli archivi inattivi da "software". Se elimini manualmente i file da "software", cancellerai gli archivi attivi. Non sono sicuro che ci sia molto danno nel farlo, ma non sono nemmeno sicuro che sia innocuo.
Il comando "installa" di MacPorts passa attraverso diverse fasi , le ultime due sono la fase di "installazione" e la fase "attiva":
install: Archive a port's destrooted files into
${prefix}/var/macports/software
. […]activate: Extract the port's files from the archive in
${prefix}/var/macports/software
to their final installed locations, usually inside${prefix}
.
La directory "software" può contenere archivi non attivi, in particolare vecchie versioni di porte che sono state aggiornate, perché il comando "upgrade" non rimuove le vecchie versioni per impostazione predefinita :
upgrade
does not uninstall the old version of a port. Instead, it deactivates it […] This allows you to go back to the older version if there happens to be a problem with the updated one. […] If you do not want to keep the old versions around while upgrading, you can pass-u
when upgrading: […] However, we instead recommend keeping the older versions around for a while and runningsudo port uninstall inactive
once in a while.
Le domande frequenti su MacPorts suggeriscono solo di utilizzare il comando "disinstalla" per eliminare i file indesiderati in "software":
What are the folders in
${prefix}/var/macports/
for and why do they take up so much space?
[…]
software: Contains the compressed archives of installed software. If a port is activated its files are extracted to the${prefix}
folders from the compressed files here.port uninstall <port> <version>+<variant>
would remove it from here, but then this port can not be used anymore.
Non sembra esserci un passaggio per il comando "uninstall" disinstallare un archivio da "software" senza disattivarlo prima se si tratta dell'archivio attivo. Quindi presumo che non sia una buona idea rimuovere manualmente gli archivi attivi da "software".
Come ha detto Rinzwind, puoi disinstallare (ad esempio eliminare) qualsiasi versione inattiva delle porte lasciate indietro dagli aggiornamenti:
port uninstall inactive
Se installi una porta, vengono installate tutte le sue dipendenze. Se si disinstalla una porta, le sue dipendenze sono non disinstallate. Puoi disinstallarli usando l'utility CutLeaves:
port install port_cutleaves
port_cutleaves
Questo rimuove solo un livello di dipendenze obsolete alla volta; per rimuoverli tutti, io uso una pipeline hacky:
while ! yes u | port_cutleaves -b | grep 'There are no new leaves to process.'; do : ; done
Puoi rimuovere tutti i file relativi alla build (file di lavoro, file di distribuzione, archivi temporanei e registri) per le porte disinstallate:
port clean --all uninstalled
Per rimuovere solo i file di lavoro per le porte installate:
port clean installed
La pulizia sembra toccare ogni singola porta nell'albero. Non so cosa sta succedendo lì.
Leggi altre domande sui tag macports