Cách xóa bộ nhớ đệm Homebrew và các phiên bản gói cũ trên Mac
Đội ngũ AskClean · Cập nhật 2026-08-05
Tìm bộ nhớ đệm tải xuống bằng brew --cache rồi chạy HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n trước khi thay đổi. brew cleanup thông thường xóa tệp khóa cũ, tệp tải xuống lỗi thời và phiên bản formula cũ; brew cleanup --prune=all xóa tệp trong bộ nhớ đệm bất kể tuổi. Nếu không đặt HOMEBREW_NO_AUTOREMOVE, Homebrew còn có thể tự động gỡ formula phụ thuộc không còn cần, một thao tác gỡ cài đặt chứ không phải dọn bộ nhớ đệm.

Phân biệt tệp tải xuống, keg cũ và công cụ đang dùng
Homebrew thường lưu bottle, tệp lưu trữ mã nguồn và tệp cask tải về trong ~/Library/Caches/Homebrew; HOMEBREW_CACHE có thể đổi đường dẫn này. Formula đã cài nằm dưới dạng keg có phiên bản trong Cellar, cask ở Caskroom và liên kết đang hoạt động bên dưới prefix. Hãy tìm vị trí thực bằng brew --cache, brew --cellar, brew --caskroom và brew --prefix. Cellar, Caskroom, prefix, Brewfile, dotfile, dịch vụ, cơ sở dữ liệu, chứng chỉ và dự án không phải bộ nhớ đệm để xóa hàng loạt.
Xem trước và đánh giá từng ứng viên
Đo bộ nhớ đệm đang hoạt động bằng du -sh "$(brew --cache)". Nếu mục tiêu chỉ là bộ nhớ đệm và phiên bản cũ, hãy chạy HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n để xem trước mà không tự động gỡ formula phụ thuộc. Đối chiếu các keg được liệt kê với brew list --versions, đồng thời kiểm tra script hoặc kế hoạch quay về bản cũ có còn cần chúng không. Bản xem trước không phải bản sao lưu: mục bị dọn thật có thể không vào Thùng rác và đúng phiên bản đó chưa chắc còn trên nguồn tải.
- Chạy brew --cache rồi đo đường dẫn bộ nhớ đệm tải xuống bằng du -sh "$(brew --cache)".
- Nếu chỉ muốn dọn bộ nhớ đệm và phiên bản cũ, chạy HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n rồi xem kỹ từng tệp tải xuống cùng keg cũ được đề xuất.
- Đối chiếu phiên bản cần giữ bằng brew list --versions; xác minh mạng, proxy, thông tin xác thực và nguồn tải vẫn sẵn sàng cho lần tải sau.
- Dùng HOMEBREW_NO_AUTOREMOVE=1 brew cleanup cho bảo trì thường lệ; để xóa tệp trong bộ nhớ đệm không giới hạn tuổi, xem trước rồi chạy lại với --prune=all và cùng biến môi trường.
- Đo lại bộ nhớ đệm, chạy lại bản xem trước với HOMEBREW_NO_AUTOREMOVE=1, kiểm tra brew list --versions rồi thử ít nhất một công cụ quan trọng được cài qua Homebrew.
brew cleanup -n chỉ là bản xem trước, không phải bản sao lưu. Nếu không đặt HOMEBREW_NO_AUTOREMOVE, cleanup còn có thể tự động gỡ phần phụ thuộc không còn cần theo đánh giá của Homebrew. Xóa keg cũ có thể làm mất khả năng quay về bản trước hoặc phá script dùng đường dẫn không được ghi lại.
Chọn lệnh cleanup có phạm vi hẹp nhất
Sau khi đọc bản xem trước, dùng HOMEBREW_NO_AUTOREMOVE=1 brew cleanup cho lượt bảo trì chỉ nhắm đến bộ nhớ đệm và phiên bản cũ; chính sách mặc định hiện coi tệp tải xuống cũ hơn 120 ngày là ứng viên. Muốn xóa mọi tệp trong bộ nhớ đệm bất kể tuổi, trước hết chạy HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n --prune=all, rồi chỉ chạy lệnh thật với cùng biến môi trường khi đã chấp nhận chi phí tải lại. cleanup không gỡ toàn bộ gói đang dùng, nhưng vẫn có thể xóa keg cũ khiến việc quay về đúng phiên bản trở nên khó hoặc bất khả thi.
Tách autoremove, dữ liệu người dùng và bước xác minh
brew autoremove không phải dọn bộ nhớ đệm: lệnh này gỡ formula mà Homebrew xem là phần phụ thuộc không còn cần thiết. brew cleanup cũng có thể gọi hành vi gỡ tự động này nếu HOMEBREW_NO_AUTOREMOVE chưa được đặt. Nếu thực sự muốn gỡ phần phụ thuộc, hãy xem riêng bằng brew autoremove --dry-run vì script cục bộ có thể dùng công cụ nằm ngoài đồ thị phần phụ thuộc. Sau cleanup, đo lại bằng du -sh "$(brew --cache)", chạy lại bản xem trước và brew list --versions rồi thử lệnh quan trọng. AskClean chỉ hiển thị thư mục bộ nhớ đệm như một mục tổng thể; quyết định theo từng gói và keg vẫn phải dựa trên bản xem trước của Homebrew.
Ranh giới xóa và chi phí khôi phục
Xem trước các tệp tải xuống và phiên bản formula cũ bằng brew cleanup, chỉ dọn phần cần thiết và bảo vệ công cụ, phần phụ thuộc cùng cấu hình đang dùng.
| Mục hoặc thao tác | Nơi kiểm tra | Hậu quả |
|---|---|---|
| Phân biệt tệp tải xuống, keg cũ và công cụ đang dùng | brew --cache | Homebrew thường lưu bottle, tệp lưu trữ mã nguồn và tệp cask tải về trong ~/Library/Caches/Homebrew; HOMEBREW_CACHE có thể đổi đường dẫn này. Formula đã cài nằm dưới dạng keg có phiên bản trong Cellar, cask ở Caskroom và liên kết đang hoạt động bên dưới prefix. Hãy tìm vị trí thực bằng brew --cache, brew --cellar, brew --caskroom và brew --prefix. Cellar, Caskroom, prefix, Brewfile, dotfile, dịch vụ, cơ sở dữ liệu, chứng chỉ và dự án không phải bộ nhớ đệm để xóa hàng loạt. |
| Xem trước và đánh giá từng ứng viên | HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n | Đo bộ nhớ đệm đang hoạt động bằng du -sh "$(brew --cache)". Nếu mục tiêu chỉ là bộ nhớ đệm và phiên bản cũ, hãy chạy HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n để xem trước mà không tự động gỡ formula phụ thuộc. Đối chiếu các keg được liệt kê với brew list --versions, đồng thời kiểm tra script hoặc kế hoạch quay về bản cũ có còn cần chúng không. Bản xem trước không phải bản sao lưu: mục bị dọn thật có thể không vào Thùng rác và đúng phiên bản đó chưa chắc còn trên nguồn tải. |
| Chọn lệnh cleanup có phạm vi hẹp nhất | HOMEBREW_NO_AUTOREMOVE=1 brew cleanup / HOMEBREW_NO_AUTOREMOVE=1 brew cleanup --prune=all | Sau khi đọc bản xem trước, dùng HOMEBREW_NO_AUTOREMOVE=1 brew cleanup cho lượt bảo trì chỉ nhắm đến bộ nhớ đệm và phiên bản cũ; chính sách mặc định hiện coi tệp tải xuống cũ hơn 120 ngày là ứng viên. Muốn xóa mọi tệp trong bộ nhớ đệm bất kể tuổi, trước hết chạy HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n --prune=all, rồi chỉ chạy lệnh thật với cùng biến môi trường khi đã chấp nhận chi phí tải lại. cleanup không gỡ toàn bộ gói đang dùng, nhưng vẫn có thể xóa keg cũ khiến việc quay về đúng phiên bản trở nên khó hoặc bất khả thi. |
| Tách autoremove, dữ liệu người dùng và bước xác minh | brew autoremove --dry-run (không phải dọn bộ nhớ đệm) | brew autoremove không phải dọn bộ nhớ đệm: lệnh này gỡ formula mà Homebrew xem là phần phụ thuộc không còn cần thiết. brew cleanup cũng có thể gọi hành vi gỡ tự động này nếu HOMEBREW_NO_AUTOREMOVE chưa được đặt. Nếu thực sự muốn gỡ phần phụ thuộc, hãy xem riêng bằng brew autoremove --dry-run vì script cục bộ có thể dùng công cụ nằm ngoài đồ thị phần phụ thuộc. Sau cleanup, đo lại bằng du -sh "$(brew --cache)", chạy lại bản xem trước và brew list --versions rồi thử lệnh quan trọng. AskClean chỉ hiển thị thư mục bộ nhớ đệm như một mục tổng thể; quyết định theo từng gói và keg vẫn phải dựa trên bản xem trước của Homebrew. |
Câu hỏi thường gặp
Chạy brew cleanup trên Mac có an toàn không?
Đây là lệnh chính thức của Homebrew, nhưng ngoài tệp tải xuống lỗi thời, nó còn xóa phiên bản formula cũ và có thể tự động gỡ phần phụ thuộc không còn cần. Hãy xem trước với HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n khi chỉ muốn dọn bộ nhớ đệm và giữ mọi formula phụ thuộc.
brew cleanup --prune=all xóa những gì?
Lệnh này chạy cleanup với chính sách bộ nhớ đệm không giới hạn tuổi. cleanup thông thường còn có thể xử lý tệp khóa cũ và phiên bản formula cũ. Hãy xem danh sách chính xác bằng HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n --prune=all nếu bạn không muốn tự động gỡ formula phụ thuộc.
Có nên chạy brew autoremove sau đó không?
Không tự động. brew autoremove gỡ formula phụ thuộc chứ không dọn bộ nhớ đệm. Hãy đánh giá riêng bằng brew autoremove --dry-run; nếu không muốn cleanup tự gọi hành vi gỡ này, hãy đặt HOMEBREW_NO_AUTOREMOVE=1 cho lệnh cleanup.
Nguồn tham khảo