Pulire Homebrew con brew cleanup e autoremove sul Mac
Homebrew gestisce le versioni vecchie e i download in cache in modo più attivo di un tempo. A meno che la pulizia automatica non sia disabilitata, le installazioni e gli aggiornamenti puliscono le formulae che toccano, e Homebrew pulisce periodicamente tutte le formulae. Un'installazione di lunga data può comunque accumulare download, versioni bloccate (pinned), artefatti di build e dipendenze. Controlla i metadati di Homebrew prima di eliminare qualsiasi cosa sotto il suo prefisso.
Cosa tiene Homebrew
Si accumulano tre tipi di residui:
- Versioni vecchie. La pulizia di solito rimuove le versioni superate, ma le versioni trattenute o aggiornate di recente possono restare per un po' nel Cellar.
- Archivi scaricati. Ogni bottle e ogni download di cask finiscono nella cache di Homebrew, conservati per evitare un altro download.
- Dipendenze non usate. Le operazioni attuali di cleanup e uninstall di Homebrew di norma rimuovono le formulae che non servono più, a meno che la rimozione automatica non sia disabilitata. Installazioni più vecchie o operazioni interrotte possono comunque lasciarne alcune.
Controlla direttamente la dimensione della cache dei download:
brew --cache
du -sh "$(brew --cache)" 2>/dev/null
Misura separatamente i tre archivi
Prima della pulizia misura separatamente le formule installate, i metadati dei cask e la cache dei download: richiedono decisioni diverse.
du -sh "$(brew --cellar)" "$(brew --caskroom)" "$(brew --cache)" 2>/dev/null
Una cache grande è facile da recuperare perché Homebrew può scaricare di nuovo i file. Un Cellar grande è soprattutto software installato e cleanup rimuove solo versioni sostituite. Un Caskroom grande non significa che i bundle delle app siano lì, di solito sono in /Applications. Ripeti il comando dopo e attribuisci il cambiamento all’archivio che si è davvero ridotto.
Come pulirlo
Controlla prima quali vecchie versioni e download Homebrew eliminerebbe. Questo comando non li cancella:
brew cleanup -n
Leggi i percorsi proposti. Un’anteprima conclusa senza elementi da eliminare indica che non c’è nulla da pulire in quel perimetro; un errore non significa lo stesso. Se le vecchie versioni e i download offline non servono più, esegui la pulizia ordinaria:
brew cleanup
Il manuale attuale di Homebrew
indica che la pulizia rimuove le vecchie versioni installate. Per i download in cache, il limite di età predefinito è di 120
giorni. HOMEBREW_CLEANUP_MAX_AGE_DAYS permette di modificarlo. Usa -n
per un'anteprima senza modifiche. La modalità più approfondita -s elimina più download in cache, mantenendo
i download delle formulae e dei cask attualmente installati:
La pulizia più ampia della cache richiede una propria anteprima. Controlla l’elenco del primo comando ed esegui il secondo separatamente solo se quel perimetro va bene:
brew cleanup -s -n
brew cleanup -s
Cleanup e uninstall di Homebrew ora rimuovono per impostazione predefinita le dipendenze delle formulae non usate.
brew autoremove resta utile quando vuoi esaminare direttamente quella decisione sulle dipendenze:
brew autoremove --dry-run
brew autoremove
brew list mostra i pacchetti installati e brew outdated mostra gli aggiornamenti in sospeso. Usa
brew --cellar, brew --caskroom e brew --cache per scoprire i percorsi invece di
codificare /opt/homebrew; le installazioni Intel e Apple silicon sono diverse.
Sicuro per progettazione
La pulizia di Homebrew è a rischio più basso rispetto a eliminare a mano le directory del Cellar, perché usa i metadati di versione e dipendenza. Può comunque rimuovere una versione di rollback o un bottle in cache che volevi usare offline. Controlla l'anteprima di cleanup e autoremove e conserva le versioni bloccate o indispensabili per il tuo lavoro.
Dietro le quinte: il Cellar, il Caskroom e come decide la pulizia
Homebrew installa ogni formula in una directory versionata nel Cellar riportato da
brew --cellar, poi collega la versione attiva nel suo prefisso. L'aggiornamento colloca la
nuova versione accanto a quella vecchia prima di ripuntare i symlink. I cask conservano metadati
versionati sotto il Caskroom, mentre i loro bundle app di solito vivono in /Applications.
I download usano il percorso riportato da brew --cache e vengono trattenuti secondo
la policy di Homebrew. brew cleanup usa i metadati di versione installata, di retention e di
dipendenza, piuttosto che eliminare semplicemente ogni directory non corrente. brew autoremove
espone la sola parte sulle dipendenze come comando separato. Poiché entrambi agiscono sui
registri di Homebrew anziché indovinare, sono più sicuri e più spiegabili di una rimozione
manuale delle cartelle. Un'anteprima resta utile sulle macchine che dipendono da toolchain vecchie o
bottle offline.
Dove un altro strumento dovrebbe fermarsi
Mole elenca i download di Homebrew e le vecchie versioni delle formule che Homebrew stesso propone con brew cleanup --dry-run. Il rilevamento delle vecchie versioni supporta i prefissi standard /opt/homebrew e /usr/local e conserva le versioni collegate o bloccate. Non svuota tutto il Cellar e non sostituisce le decisioni sulle dipendenze di Homebrew. Controlla le voci prima di confermare la pulizia. Le vecchie versioni non sono selezionate per impostazione predefinita e vanno controllate.
Un ordine di operazioni sicuro
Usa i comandi di Homebrew per trovare e misurare le sue cartelle, controlla l'anteprima con brew cleanup -n ed esegui
la pulizia ordinaria prima di considerare -s. Controlla separatamente l'anteprima di brew autoremove perché
risponde a una domanda sulle dipendenze, non sulla cache. Non serve una pianificazione fissa di
pulizia quando la pulizia automatica funziona e la pressione sul disco è bassa.