AskCleanAskClean

Πώς να καθαρίσετε την cache και τις παλιές εκδόσεις του Homebrew στο Mac

Ομάδα AskClean · Ενημερώθηκε 2026-08-05

Εκτελέστε brew --cache για να βρείτε την ενεργή cache λήψεων και brew cleanup -n για να δείτε τι προτείνει να αφαιρέσει το Homebrew. Το brew cleanup διαγράφει παρωχημένα locks, παλιές λήψεις και παλιές εγκατεστημένες εκδόσεις formulae και, αν δεν έχει οριστεί HOMEBREW_NO_AUTOREMOVE, μπορεί να αφαιρέσει αυτόματα formulae που θεωρεί πλέον περιττές εξαρτήσεις. Το brew cleanup --prune=all αφαιρεί αρχεία cache ανεξάρτητα από ηλικία. Αποδεχτείτε το κόστος νέας λήψης και rollback πριν προχωρήσετε.

Φιάλες και κουτιά Homebrew ταξινομημένα σε φωτισμένα ράφια, με παλιές φιάλες συγκεντρωμένες σε κάδο ανακύκλωσης
Ξεχωρίστε τις λήψεις και τις παλιές εκδόσεις προς αφαίρεση από τις τρέχουσες φιάλες εργαλείων που παραμένουν στα ράφια.

Ξεχωρίστε λήψεις, παλιές εκδόσεις και τρέχοντα εργαλεία

Η ενεργή cache λήψεων βρίσκεται με brew --cache και συνήθως είναι η ~/Library/Caches/Homebrew, εκτός αν την αλλάζει το HOMEBREW_CACHE. Τα versioned kegs στο Cellar, τα casks στο Caskroom και τα ενεργά links κάτω από το prefix είναι εγκατεστημένο λογισμικό, όχι cache. Ανακαλύψτε τις πραγματικές διαδρομές με brew --cellar, brew --caskroom και brew --prefix αντί να υποθέσετε /opt/homebrew ή /usr/local. Το cleanup μπορεί να αφαιρέσει παλιές λήψεις, παλιές εγκατεστημένες εκδόσεις και εξαρτήσεις μέσω autoremove, με διαφορετικό κόστος επαναφοράς για καθεμία.

Κάντε έλεγχο μόνο για ανάγνωση πριν από κάθε cleanup

Μετρήστε την cache με du -sh "$(brew --cache)" και εκτελέστε brew cleanup -n, δηλαδή --dry-run. Ελέγξτε χωριστά τις λήψεις, τα παλιά kegs και κάθε εξάρτηση που προτείνεται για αυτόματη αφαίρεση και χρησιμοποιήστε brew list --versions για τα εργαλεία που χρειάζεστε. Το Finder δείχνει μόνο μέγεθος· η προεπισκόπηση του Homebrew γνωρίζει ποια έκδοση είναι τρέχουσα. Το dry run είναι προεπισκόπηση, όχι backup, και τα στοιχεία που θα αφαιρεθούν δεν είναι εγγυημένο ότι θα καταλήξουν στον Κάδο ή θα παραμείνουν διαθέσιμα upstream.

  1. Εκτελέστε brew --cache και μετρήστε την ενεργή διαδρομή με du -sh "$(brew --cache)".
  2. Εκτελέστε brew cleanup -n και ελέγξτε κάθε λήψη, παλιά έκδοση formula και εξάρτηση που προτείνεται για αυτόματη αφαίρεση.
  3. Ελέγξτε τις εκδόσεις με brew list --versions και επιβεβαιώστε δίκτυο, credentials και δυνατότητα επαναφοράς παλιών kegs.
  4. Εκτελέστε το εγκεκριμένο brew cleanup· αν θέλετε να αποκλείσετε autoremove, προτάξτε HOMEBREW_NO_AUTOREMOVE=1 στην προεπισκόπηση και στην πραγματική εντολή. Χρησιμοποιήστε --prune=all μόνο μετά από brew cleanup -n --prune=all.
  5. Επαναλάβετε brew cleanup -n, du -sh "$(brew --cache)" και brew list --versions και δοκιμάστε ένα κρίσιμο Homebrew-installed command.

Το dry run είναι προεπισκόπηση, όχι backup. Ένα cached artifact συνήθως κατεβαίνει ξανά αν παραμένει διαθέσιμο, αλλά ένα παλιό keg μπορεί να μην ανακτηθεί ακριβώς και δεν πρέπει να θεωρείται αναστρέψιμο μέσω του Κάδου.

Επιλέξτε το στενότερο κατάλληλο cleanup

Το κανονικό brew cleanup εφαρμόζει την τρέχουσα πολιτική ηλικίας, που θεωρεί υποψήφιες τις λήψεις άνω των 120 ημερών. Αν θέλετε να αξιολογήσετε το autoremove χωριστά, προτάξτε HOMEBREW_NO_AUTOREMOVE=1 τόσο στην προεπισκόπηση όσο και στην πραγματική εντολή, για παράδειγμα HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n και έπειτα HOMEBREW_NO_AUTOREMOVE=1 brew cleanup. Το brew cleanup --prune=all αφαιρεί αρχεία cache ανεξάρτητα από ηλικία, γι’ αυτό προηγείται brew cleanup -n --prune=all. Και στις δύο περιπτώσεις μπορεί να αφαιρεθούν παλιά kegs και οι επόμενες εγκαταστάσεις θα χρειαστούν ξανά δίκτυο.

Ξεχωρίστε το autoremove από τον καθαρισμό της cache

Το brew autoremove απεγκαθιστά formulae που εγκαταστάθηκαν μόνο ως εξαρτήσεις και δεν θεωρούνται πλέον αναγκαίες· δεν καθαρίζει την cache. Το brew cleanup μπορεί όμως να το ενεργοποιήσει αυτόματα, εκτός αν οριστεί HOMEBREW_NO_AUTOREMOVE. Για χωριστή απόφαση, χρησιμοποιήστε αυτή τη μεταβλητή στο cleanup και εξετάστε αργότερα το brew autoremove --dry-run, επειδή ένα script μπορεί να καλεί άμεσα ένα εργαλείο που δεν δηλώνεται στο γράφημα εξαρτήσεων. Μην εκτελέσετε rm -rf στα brew --prefix, brew --cellar ή brew --caskroom και μην διαγράψετε Brewfile, dotfiles, services, databases, certificates ή δεδομένα έργων.

Όρια διαγραφής και κόστος επαναφοράς

Ελέγξτε πρώτα τις λήψεις και τις παλιές εκδόσεις με brew cleanup -n και προστατέψτε τα τρέχοντα εργαλεία, τις εξαρτήσεις, τις ρυθμίσεις και τα δεδομένα σας.

Στοιχείο ή ενέργειαΈλεγχοςΣυνέπεια
Ξεχωρίστε λήψεις, παλιές εκδόσεις και τρέχοντα εργαλείαbrew --cacheΗ ενεργή cache λήψεων βρίσκεται με brew --cache και συνήθως είναι η ~/Library/Caches/Homebrew, εκτός αν την αλλάζει το HOMEBREW_CACHE. Τα versioned kegs στο Cellar, τα casks στο Caskroom και τα ενεργά links κάτω από το prefix είναι εγκατεστημένο λογισμικό, όχι cache. Ανακαλύψτε τις πραγματικές διαδρομές με brew --cellar, brew --caskroom και brew --prefix αντί να υποθέσετε /opt/homebrew ή /usr/local. Το cleanup μπορεί να αφαιρέσει παλιές λήψεις, παλιές εγκατεστημένες εκδόσεις και εξαρτήσεις μέσω autoremove, με διαφορετικό κόστος επαναφοράς για καθεμία.
Κάντε έλεγχο μόνο για ανάγνωση πριν από κάθε cleanupbrew cleanup -nΜετρήστε την cache με du -sh "$(brew --cache)" και εκτελέστε brew cleanup -n, δηλαδή --dry-run. Ελέγξτε χωριστά τις λήψεις, τα παλιά kegs και κάθε εξάρτηση που προτείνεται για αυτόματη αφαίρεση και χρησιμοποιήστε brew list --versions για τα εργαλεία που χρειάζεστε. Το Finder δείχνει μόνο μέγεθος· η προεπισκόπηση του Homebrew γνωρίζει ποια έκδοση είναι τρέχουσα. Το dry run είναι προεπισκόπηση, όχι backup, και τα στοιχεία που θα αφαιρεθούν δεν είναι εγγυημένο ότι θα καταλήξουν στον Κάδο ή θα παραμείνουν διαθέσιμα upstream.
Επιλέξτε το στενότερο κατάλληλο cleanupbrew cleanup / brew cleanup --prune=allΤο κανονικό brew cleanup εφαρμόζει την τρέχουσα πολιτική ηλικίας, που θεωρεί υποψήφιες τις λήψεις άνω των 120 ημερών. Αν θέλετε να αξιολογήσετε το autoremove χωριστά, προτάξτε HOMEBREW_NO_AUTOREMOVE=1 τόσο στην προεπισκόπηση όσο και στην πραγματική εντολή, για παράδειγμα HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n και έπειτα HOMEBREW_NO_AUTOREMOVE=1 brew cleanup. Το brew cleanup --prune=all αφαιρεί αρχεία cache ανεξάρτητα από ηλικία, γι’ αυτό προηγείται brew cleanup -n --prune=all. Και στις δύο περιπτώσεις μπορεί να αφαιρεθούν παλιά kegs και οι επόμενες εγκαταστάσεις θα χρειαστούν ξανά δίκτυο.
Ξεχωρίστε το autoremove από τον καθαρισμό της cachebrew autoremove --dry-run (δεν είναι καθαρισμός cache)Το brew autoremove απεγκαθιστά formulae που εγκαταστάθηκαν μόνο ως εξαρτήσεις και δεν θεωρούνται πλέον αναγκαίες· δεν καθαρίζει την cache. Το brew cleanup μπορεί όμως να το ενεργοποιήσει αυτόματα, εκτός αν οριστεί HOMEBREW_NO_AUTOREMOVE. Για χωριστή απόφαση, χρησιμοποιήστε αυτή τη μεταβλητή στο cleanup και εξετάστε αργότερα το brew autoremove --dry-run, επειδή ένα script μπορεί να καλεί άμεσα ένα εργαλείο που δεν δηλώνεται στο γράφημα εξαρτήσεων. Μην εκτελέσετε rm -rf στα brew --prefix, brew --cellar ή brew --caskroom και μην διαγράψετε Brewfile, dotfiles, services, databases, certificates ή δεδομένα έργων.

Συχνές ερωτήσεις

Είναι ασφαλές το brew cleanup στο Mac;

Είναι υποστηριζόμενη εντολή συντήρησης, αλλά εκτελέστε πρώτα brew cleanup -n. Αφαιρεί παλιές λήψεις και εκδόσεις formulae και μπορεί να ενεργοποιήσει autoremove. Προστατέψτε παλιά kegs που χρειάζονται για rollback και χρησιμοποιήστε HOMEBREW_NO_AUTOREMOVE=1 αν θέλετε να εξετάσετε τις περιττές εξαρτήσεις χωριστά.

Τι διαγράφει το brew cleanup --prune=all;

Διευρύνει την πολιτική pruning ώστε να αφαιρούνται cached files ανεξάρτητα από ηλικία, ενώ εξακολουθεί να ισχύει η κανονική αφαίρεση stale locks και παλιών formula versions. Δείτε το ακριβές αποτέλεσμα με brew cleanup -n --prune=all και υπολογίστε τις νέες λήψεις.

Πρέπει να εκτελέσω brew autoremove μετά το cleanup;

Όχι ως αυτόματο επόμενο βήμα. Το autoremove απεγκαθιστά formulae και δεν καθαρίζει την cache, ενώ το cleanup μπορεί ήδη να το ενεργοποιήσει. Για χωριστή απόφαση, χρησιμοποιήστε HOMEBREW_NO_AUTOREMOVE=1 κατά το cleanup και ξεκινήστε αργότερα με brew autoremove --dry-run.

Πηγές

Περισσότεροι οδηγοί για τον αποθηκευτικό χώρο ανάπτυξης