MacPorts Pulizia del software: / opt / local / var / macports / software

7

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.

    
posta Robottinosino 15.09.2012 - 15:30
fonte

3 risposte

7

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.

    
risposta data 15.09.2012 - 16:20
fonte
0

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 running sudo 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".

    
risposta data 05.03.2016 - 14:40
fonte
0

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ì.

    
risposta data 03.01.2017 - 01:41
fonte

Leggi altre domande sui tag