Cara Membersihkan Cache dan Versi Lama Homebrew di Mac
Tim AskClean · Diperbarui 2026-11-02
Jalankan brew cleanup -n sebelum mengubah apa pun, dan pastikan lokasi cache aktif dengan brew --cache. Cleanup biasa menghapus lock usang, unduhan lama, dan versi formula terdahulu. Opsi -s (--scrub) melangkah lebih jauh: opsi ini juga menghapus unduhan versi terbaru yang tersimpan di cache, misalnya paket yang pernah Anda unduh tetapi tidak pernah dipasang atau yang sudah dicopot; unduhan untuk apa pun yang masih terpasang tetap disimpan. Opsi --prune=all membuang berkas cache tanpa memandang usia. Tanpa nama paket, cleanup juga mencopot dependensi yang tidak lagi diperlukan, kecuali HOMEBREW_NO_AUTOREMOVE ditetapkan.

Bedakan unduhan, keg lama, dan alat aktif
Homebrew biasanya menyimpan bottle, arsip sumber, dan unduhan cask di ~/Library/Caches/Homebrew; HOMEBREW_CACHE dapat mengubah jalurnya. Formula terpasang berada sebagai keg berversi di Cellar, cask di Caskroom, dan link aktif di bawah prefix. Temukan lokasi sebenarnya dengan brew --cache, brew --cellar, brew --caskroom, dan brew --prefix. Cellar, Caskroom, prefix, Brewfile, dotfile, layanan, basis data, sertifikat, serta proyek bukan cache yang boleh dihapus massal.
Pratinjau dan periksa setiap kandidat
Ukur cache aktif dengan du -sh "$(brew --cache)", lalu jalankan brew cleanup -n. Pratinjau ini menampilkan unduhan usang, versi lama dari formula terpasang, dan formula yang tercantum di bawah “Would autoremove”. Cocokkan alat penting dengan brew list --versions dan periksa apakah skrip atau rencana untuk kembali ke versi sebelumnya masih memerlukan keg lama. Pratinjau bukan cadangan: jangan berasumsi item yang benar-benar dibersihkan akan masuk ke Tong Sampah atau versi persisnya tetap tersedia dari sumbernya.
- Jalankan brew --cache, lalu ukur jalur cache unduhan dengan du -sh "$(brew --cache)".
- Jalankan brew cleanup -n dan periksa setiap unduhan, versi formula lama, serta kandidat autoremove; tetapkan HOMEBREW_NO_AUTOREMOVE bila dependensi tidak boleh dicopot otomatis.
- Cocokkan versi yang diperlukan dengan brew list --versions; pastikan jaringan, proxy, kredensial, dan sumber upstream tersedia untuk unduhan berikutnya.
- Gunakan brew cleanup untuk pemeliharaan biasa, atau setelah brew cleanup -n --prune=all jalankan brew cleanup --prune=all dengan sadar untuk menghapus cache tanpa batas usia.
- Ukur ulang cache, jalankan brew cleanup -n dan brew list --versions, lalu uji setidaknya satu alat penting yang dipasang lewat Homebrew.
brew cleanup -n hanya pratinjau, bukan cadangan. Menghapus keg lama dapat merusak rollback atau jalur skrip yang tidak terdokumentasi, dan versi persis tersebut mungkin tidak bisa dipulihkan.
Pilih perintah cleanup dengan cakupan terkecil
Setelah membaca pratinjau, gunakan brew cleanup untuk pemeliharaan normal; kebijakan bawaan saat ini menilai unduhan yang berusia lebih dari 120 hari. Opsi -s (--scrub) memperluas cleanup ke unduhan versi terbaru milik paket yang tidak terpasang — yang pernah diunduh tetapi tidak pernah dipasang, atau yang sudah dicopot — sementara unduhan untuk formula dan cask yang masih terpasang tetap disimpan; -s berarti --scrub, bukan “safe” atau “hapus semua cache”, jadi pratinjau dulu dengan brew cleanup -n -s. Untuk membuang semua berkas cache tanpa batas usia, jalankan dahulu brew cleanup -n --prune=all, lalu brew cleanup --prune=all hanya jika biaya unduh ulang sudah diterima. cleanup tidak menghapus versi terkini dari paket yang Anda pasang sendiri, tetapi tetap dapat menyingkirkan keg lama sehingga rollback ke versi persis menjadi sulit atau mustahil.
Pisahkan autoremove, data pengguna, dan verifikasi
brew autoremove bukan pembersihan cache: perintah itu mencopot formula yang dianggap Homebrew sebagai dependensi yang tidak lagi diperlukan. Selain perintah eksplisit tersebut, brew cleanup dan brew uninstall dapat memicu autoremove otomatis; tetapkan HOMEBREW_NO_AUTOREMOVE jika Anda ingin mencegahnya. Tinjau kandidatnya dengan brew autoremove --dry-run karena skrip lokal mungkin memakai alat di luar graf dependensi. Setelah cleanup, ukur kembali dengan du -sh "$(brew --cache)", jalankan brew cleanup -n dan brew list --versions, lalu uji perintah-perintah penting.
Batas penghapusan dan biaya pemulihan
Pratinjau dengan brew cleanup -n, pahami -s (--scrub) dan --prune=all, hapus unduhan serta versi formula lama, dan lindungi alat serta konfigurasi yang aktif.
| Item atau tindakan | Tempat memeriksa | Konsekuensi |
|---|---|---|
| Bedakan unduhan, keg lama, dan alat aktif | brew --cache | Homebrew biasanya menyimpan bottle, arsip sumber, dan unduhan cask di ~/Library/Caches/Homebrew; HOMEBREW_CACHE dapat mengubah jalurnya. |
| Pratinjau dan periksa setiap kandidat | brew cleanup -n | Ukur cache aktif dengan du -sh "$(brew --cache)", lalu jalankan brew cleanup -n. |
| Pilih perintah cleanup dengan cakupan terkecil | brew cleanup / brew cleanup --prune=all | Setelah membaca pratinjau, gunakan brew cleanup untuk pemeliharaan normal; kebijakan bawaan saat ini menilai unduhan yang berusia lebih dari 120 hari. |
| Pisahkan autoremove, data pengguna, dan verifikasi | brew autoremove --dry-run (bukan pembersihan cache) | brew autoremove bukan pembersihan cache: perintah itu mencopot formula yang dianggap Homebrew sebagai dependensi yang tidak lagi diperlukan. |
FAQ
Apakah brew cleanup aman dijalankan di Mac?
Ini perintah resmi Homebrew, tetapi selain unduhan usang, perintah ini juga menghapus versi lama formula terpasang dan—kecuali HOMEBREW_NO_AUTOREMOVE ditetapkan—dependensi yang tidak lagi diperlukan. Selalu jalankan brew cleanup -n lebih dulu dan pertahankan keg atau dependensi yang masih diperlukan untuk rollback atau skrip.
Apa yang dihapus brew cleanup --prune=all?
Perintah itu menjalankan cleanup dengan kebijakan yang menghapus berkas cache tanpa memandang usia, sementara cleanup tetap dapat menghapus lock usang dan versi formula lama. Lihat daftar persisnya dengan brew cleanup -n --prune=all, dan bersiaplah instalasi berikutnya mengunduh artefak lagi.
Haruskah brew autoremove dijalankan setelahnya?
Biasanya tidak perlu: kecuali HOMEBREW_NO_AUTOREMOVE ditetapkan, brew cleanup tanpa nama paket sudah menjalankan pencopotan yang sama. brew autoremove mencopot formula dependensi dan bukan pembersihan cache, jadi tinjau kandidatnya secara terpisah dengan brew autoremove --dry-run.
Sumber