Πώς να καθαρίσετε την cache και τις παλιές εκδόσεις του Homebrew στο Mac
Ομάδα AskClean · Ενημερώθηκε 2026-11-02
Πριν αλλάξετε οτιδήποτε, εκτελέστε brew --cache για να βρείτε την ενεργή cache λήψεων και brew cleanup -n για να δείτε τι προτείνει να αφαιρέσει το Homebrew. Το κανονικό brew cleanup διαγράφει παρωχημένα locks, παλιές λήψεις και παλιές εγκατεστημένες εκδόσεις formulae και, αν δεν έχει οριστεί HOMEBREW_NO_AUTOREMOVE, απεγκαθιστά επίσης εξαρτήσεις που δεν χρειάζονται πια· το dry run τις δείχνει κάτω από το «Would autoremove». Η επιλογή -s (--scrub) πηγαίνει πιο μακριά: διαγράφει και τις αποθηκευμένες λήψεις των πιο πρόσφατων εκδόσεων, π.χ. πακέτων που κατεβάσατε αλλά δεν εγκαταστήσατε ποτέ ή αφαιρέσατε στο μεταξύ· οι λήψεις για ό,τι είναι ακόμη εγκατεστημένο διατηρούνται σε κάθε περίπτωση. Το brew cleanup --prune=all αφαιρεί αρχεία cache ανεξάρτητα από την ηλικία τους. Αποδεχτείτε το κόστος νέας λήψης και rollback πριν προχωρήσετε.

Ξεχωρίστε λήψεις, παλιές εκδόσεις και τρέχοντα εργαλεία
Η ενεργή 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 και κάθε formula που εμφανίζεται κάτω από το «Would autoremove» και χρησιμοποιήστε brew list --versions για τα εργαλεία που χρειάζεστε. Το Finder δείχνει μόνο μέγεθος· η προεπισκόπηση του Homebrew γνωρίζει ποια έκδοση είναι τρέχουσα. Το dry run είναι προεπισκόπηση, όχι αντίγραφο ασφαλείας, και δεν είναι εγγυημένο ότι όσα αφαιρεθούν θα καταλήξουν στον Κάδο ή θα παραμείνουν διαθέσιμα στην πηγή τους στην ίδια έκδοση.
- Εκτελέστε brew --cache και μετρήστε την ενεργή διαδρομή με du -sh "$(brew --cache)".
- Εκτελέστε brew cleanup -n και ελέγξτε κάθε λήψη, παλιά έκδοση formula και εξάρτηση που εμφανίζεται κάτω από το «Would autoremove».
- Ελέγξτε τις εκδόσεις με brew list --versions και επιβεβαιώστε δίκτυο, credentials και δυνατότητα επαναφοράς των παλιών kegs.
- Εκτελέστε το εγκεκριμένο brew cleanup· αν θέλετε να αποκλείσετε το autoremove, προτάξτε HOMEBREW_NO_AUTOREMOVE=1 στην προεπισκόπηση και στην πραγματική εντολή. Χρησιμοποιήστε το -s ή το --prune=all μόνο μετά από brew cleanup -n -s ή brew cleanup -n --prune=all.
- Επαναλάβετε brew cleanup -n, du -sh "$(brew --cache)" και brew list --versions και δοκιμάστε μια κρίσιμη εντολή που εγκαταστήσατε μέσω Homebrew.
Το dry run είναι προεπισκόπηση, όχι αντίγραφο ασφαλείας, και το -s σημαίνει --scrub, όχι «safe». Ένα αρχείο της cache συνήθως κατεβαίνει ξανά αν παραμένει διαθέσιμο, αλλά ένα παλιό keg μπορεί να μην ανακτηθεί ακριβώς και δεν πρέπει να θεωρείται αναστρέψιμο μέσω του Κάδου.
Επιλέξτε το στενότερο κατάλληλο cleanup
Το κανονικό brew cleanup εφαρμόζει την τρέχουσα πολιτική ηλικίας, που θεωρεί υποψήφιες τις λήψεις άνω των 120 ημερών. Το -s (--scrub) καθαρίζει την cache πιο εκτεταμένα: αφαιρεί και τις λήψεις των νεότερων εκδόσεων για πακέτα που δεν είναι εγκατεστημένα (που τα κατεβάσατε χωρίς να τα εγκαταστήσετε ή τα αφαιρέσατε στο μεταξύ), ενώ κρατά τις λήψεις των formulae και casks που είναι ακόμη εγκατεστημένα· δείτε το πρώτα με brew cleanup -n -s. Το brew cleanup --prune=all αφαιρεί αρχεία cache ανεξάρτητα από ηλικία, γι' αυτό προηγείται το brew cleanup -n --prune=all. Αν θέλετε να αξιολογήσετε το autoremove χωριστά, προτάξτε HOMEBREW_NO_AUTOREMOVE=1 τόσο στην προεπισκόπηση όσο και στην πραγματική εντολή, για παράδειγμα HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n και έπειτα HOMEBREW_NO_AUTOREMOVE=1 brew cleanup. Σε κάθε περίπτωση μπορεί να αφαιρεθούν παλιά 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, βάσεις δεδομένων, πιστοποιητικά ή δεδομένα έργων.
Όρια διαγραφής και κόστος επαναφοράς
Τι κάνει το brew cleanup -s (--scrub), πώς βλέπετε πρώτα την προεπισκόπηση, πώς αφαιρείτε παλιές λήψεις και εκδόσεις και πώς προστατεύετε τα τρέχοντα εργαλεία.
| Στοιχείο ή ενέργεια | Έλεγχος | Συνέπεια |
|---|---|---|
| Ξεχωρίστε λήψεις, παλιές εκδόσεις και τρέχοντα εργαλεία | brew --cache | Η ενεργή cache λήψεων βρίσκεται με brew --cache και συνήθως είναι η ~/Library/Caches/Homebrew, εκτός αν την αλλάζει το HOMEBREW_CACHE. |
| Κάντε έλεγχο μόνο για ανάγνωση πριν από κάθε cleanup | brew cleanup -n | Μετρήστε την cache με du -sh "$(brew --cache)" και εκτελέστε brew cleanup -n, δηλαδή --dry-run. |
| Επιλέξτε το στενότερο κατάλληλο cleanup | brew cleanup / brew cleanup -s / brew cleanup --prune=all | Το κανονικό brew cleanup εφαρμόζει την τρέχουσα πολιτική ηλικίας, που θεωρεί υποψήφιες τις λήψεις άνω των 120 ημερών. |
| Ξεχωρίστε το autoremove από τον καθαρισμό της cache | brew autoremove --dry-run (δεν είναι καθαρισμός cache) | Το brew autoremove απεγκαθιστά formulae που εγκαταστάθηκαν μόνο ως εξαρτήσεις και δεν θεωρούνται πλέον αναγκαίες· δεν καθαρίζει την cache. |
Συχνές ερωτήσεις
Είναι ασφαλές το brew cleanup στο Mac;
Είναι υποστηριζόμενη εντολή συντήρησης, αλλά εκτελέστε πρώτα brew cleanup -n. Αφαιρεί παλιές λήψεις και παλιές εκδόσεις formulae και, αν δεν έχει οριστεί HOMEBREW_NO_AUTOREMOVE, απεγκαθιστά εξαρτήσεις που δεν χρειάζονται πια. Προστατέψτε παλιά kegs που χρειάζονται για rollback και χρησιμοποιήστε HOMEBREW_NO_AUTOREMOVE=1 αν θέλετε να εξετάσετε τις περιττές εξαρτήσεις χωριστά.
Τι διαγράφουν τα brew cleanup -s και brew cleanup --prune=all;
Το -s (--scrub) καθαρίζει επίσης τις αποθηκευμένες λήψεις των πιο πρόσφατων εκδόσεων για πακέτα που δεν είναι εγκατεστημένα, όπως όσα κατεβάσατε και δεν εγκαταστήσατε ποτέ ή αφαιρέσατε στο μεταξύ· οι λήψεις για formulae και casks που έχετε ακόμη εγκατεστημένα διατηρούνται. Το --prune=all αφαιρεί αρχεία cache ανεξάρτητα από ηλικία. Και στις δύο περιπτώσεις γίνεται και η κανονική αφαίρεση παλιών locks και παλιών εκδόσεων formulae· δείτε το ακριβές αποτέλεσμα με brew cleanup -n -s ή brew cleanup -n --prune=all και υπολογίστε τις νέες λήψεις.
Πρέπει να εκτελέσω brew autoremove μετά το cleanup;
Συνήθως όχι: αν δεν έχει οριστεί HOMEBREW_NO_AUTOREMOVE, ένα καθολικό brew cleanup κάνει ήδη την ίδια αφαίρεση. Το autoremove απεγκαθιστά formulae και δεν καθαρίζει την cache. Για χωριστή απόφαση, χρησιμοποιήστε HOMEBREW_NO_AUTOREMOVE=1 κατά το cleanup και ξεκινήστε αργότερα με brew autoremove --dry-run.
Πηγές