Trang chủ › Dọn dữ liệu lập trình trên Mac
Xcode, Docker, node_modules ngốn ổ Mac: dọn sao cho an toàn
Trên máy lập trình, thứ chiếm chỗ nhiều nhất thường là dữ liệu build và máy giả lập của Xcode, image và bộ nhớ build của Docker, node_modules trong dự án cũ, bộ nhớ đệm gói (npm, Homebrew, pip) và mô hình AI chạy trên máy. Phần lớn tạo lại hoặc tải lại được. Đo trước, xoá thứ tạo lại được, giữ thứ là bản duy nhất của công việc, như bản archive Xcode đã phát hành.
Đo trước khi xoá
Mở Terminal và kiểm các chỗ hay phình. Mỗi dòng in ra dung lượng, thư mục không có thì không in gì:
du -sh ~/Library/Developer/Xcode/DerivedData du -sh ~/Library/Developer/CoreSimulator du -sh ~/.npm ~/Library/Caches/Homebrew ~/.ollama docker system df
Ghi lại các con số, để dọn đúng chỗ đang thật sự lớn trên máy bạn.
Xcode
- DerivedData (
~/Library/Developer/Xcode/DerivedData): sản phẩm build và chỉ mục. Xoá hết được an toàn; lần build sau lâu hơn vì Xcode build lại từ đầu. Có thể chỉ xoá thư mục của một dự án. - Máy giả lập không dùng được nữa: chạy
xcrun simctl delete unavailableđể xoá máy giả lập của các bản runtime đã gỡ. - iOS DeviceSupport (
~/Library/Developer/Xcode/iOS DeviceSupport): file gỡ lỗi cho từng iPhone, từng bản iOS bạn từng cắm vào. Bản cũ xoá được, nhưng Xcode chỉ chép lại từ máy còn chạy đúng bản đó, và cần chúng để đọc báo cáo lỗi của bản đó. - Archives (
~/Library/Developer/Xcode/Archives): xem mục Những thứ nên giữ.
Docker
docker system df cho thấy image, container, volume và bộ nhớ build đang chiếm bao nhiêu. Sau đó:
docker system prunexoá container đã dừng, network không container nào dùng, image lơ lửng (dangling) và bộ nhớ build không dùng.- Thêm
-ađể xoá luôn mọi image không container nào dùng. Lần sau cần thì tải lại. - Volume được giữ nguyên trừ khi thêm
--volumes. Volume hay chứa dữ liệu cơ sở dữ liệu, kiểm kỹ trước khi thêm.
node_modules và npm
- node_modules trong dự án đã thôi làm xoá được. Chạy
npm installlà có lại, theopackage.jsonvà file lock. - Bộ nhớ đệm npm nằm ở
~/.npm. Tài liệu của npm nói thường không cần xoá vì bộ nhớ đệm tự sửa lỗi, nên lệnhnpm cache clean --forcemới bắt thêm cờ force. Chỉ xoá khi cần lấy lại chỗ.
Homebrew và pip
- Homebrew tự xoá bản cũ khi nâng cấp và dọn thêm mỗi 30 ngày. Bộ nhớ tải về thường ở
~/Library/Caches/Homebrew;brew cleanupxoá phần không cần nữa. - pip:
pip cache dircho biết bộ nhớ đệm ở đâu,pip cache purgexoá toàn bộ.
Mô hình AI chạy trên máy
- Ollama lưu mô hình ở
~/.ollama/models. Chạyollama list, rồiollama rm tên-mô-hìnhvới mô hình không dùng. - Hugging Face tải về
~/.cache/huggingface.
Một mô hình có thể nặng vài GB, nên trên máy làm AI đây thường là chỗ giải phóng được nhiều nhất.
Những thứ nên giữ
- Archive Xcode của các bản đã phát hành. Cần chúng để đọc báo cáo lỗi (crash) của bản đó. Chỉ xoá archive của bản chưa từng phát hành.
- Volume Docker có dữ liệu bạn cần.
- Thứ không tạo lại được: cơ sở dữ liệu trên máy, bộ dữ liệu tự tạo, mô hình đã tinh chỉnh.
Tidymint giúp được gì
Tidymint là app dọn Mac miễn phí, mã nguồn mở, có tiếng Việt. Với dân lập trình, Tidymint:
- liệt kê bộ nhớ đệm npm và bộ nhớ đệm của bạn (gồm cả Homebrew, pip) trong Dọn ngay, chia nhóm, giải thích trước khi bạn bấm Dọn;
- dọn thư mục
_to_delete,_tmptrong các thư mục dự án bạn khai ở Cài đặt; - ghi chú dễ hiểu trong Bản đồ ổ đĩa cho DerivedData, CoreSimulator, node_modules, iOS DeviceSupport,
.ollama, Hugging Face, để biết bong bóng to là gì trước khi xử lý; - kiểm thư mục dự án trước khi xoá file trùng mà script vẫn đang dùng.
Tidymint không chạy lệnh docker hay xcrun thay bạn. Mọi thứ bạn chọn luôn vào Thùng rác trước.
Làm tay hay dùng Tidymint?
| Làm tay | Tidymint | |
|---|---|---|
| Tốc độ | Mở từng thư mục ẩn, gõ lệnh trong Terminal | Một lần quét, kết quả chia nhóm theo dung lượng |
| Nhìn tổng quát | Mỗi lần chỉ thấy một thư mục | Bản đồ ổ đĩa cho thấy cả ổ, thư mục nào nặng nhất |
| Hiểu cấu trúc máy | Tên thư mục khó hiểu như Caches, DerivedData | Ghi chú dễ hiểu cho các thư mục hay gặp |
| Không lo xoá nhầm | Xoá nhầm là mất, không có đường lùi | Chọn sẵn phần an toàn, phần còn lại bạn tự quyết, luôn vào Thùng rác, có thể hoàn tác |
| Chi phí | Miễn phí, tốn thời gian | Miễn phí, mã nguồn mở |
Dọn Mac miễn phí, hợp pháp
Tidymint miễn phí, mã nguồn mở, có tiếng Việt. Mọi thứ luôn vào Thùng rác trước, bạn tự quyết.
Câu hỏi thường gặp
Xoá DerivedData có an toàn không?
Có. Xcode tự tạo lại. Lần build sau lâu hơn, và xoá DerivedData cũng là cách hay dùng để chữa lỗi build lạ.
docker system prune có xoá volume không?
Không. Volume được giữ trừ khi thêm --volumes. Mặc định lệnh xoá container đã dừng, network không dùng, image lơ lửng và bộ nhớ build không dùng.
Xoá node_modules được không?
Được, với dự án bạn không làm nữa. Chạy npm install trong dự án là có lại.
Có nên xoá bộ nhớ đệm npm không?
Chỉ khi cần lấy lại chỗ. Tài liệu npm nói bộ nhớ đệm tự sửa lỗi, xoá đi hiếm khi chữa được gì.
Tidymint có xoá dữ liệu Xcode, Docker không?
Chỉ những gì bạn chọn. Dọn ngay liệt kê dữ liệu build Xcode (DerivedData) theo từng dự án, không chọn sẵn. Dữ liệu hệ thống liệt kê file build, bộ nhớ đệm máy ảo và file hỗ trợ thiết bị cũ, đều không chọn sẵn. Bản archive Xcode không bao giờ được đưa ra để xoá: giữ lại để đọc báo cáo lỗi. Tidymint không chạy lệnh Docker hay Xcode, mọi thứ vào Thùng rác trước.
Làm tay hay dùng Tidymint?
| Làm tay | Tidymint | |
|---|---|---|
| Tốc độ | Mở từng thư mục ẩn, gõ lệnh trong Terminal | Một lần quét, kết quả chia nhóm theo dung lượng |
| Nhìn tổng quát | Mỗi lần chỉ thấy một thư mục | Bản đồ ổ đĩa cho thấy cả ổ, thư mục nào nặng nhất |
| Hiểu cấu trúc máy | Tên thư mục khó hiểu như Caches, DerivedData | Ghi chú dễ hiểu cho các thư mục hay gặp |
| Không lo xoá nhầm | Xoá nhầm là mất, không có đường lùi | Chọn sẵn phần an toàn, phần còn lại bạn tự quyết, luôn vào Thùng rác, có thể hoàn tác |
| Chi phí | Miễn phí, tốn thời gian | Miễn phí, mã nguồn mở |
Dọn Mac miễn phí, hợp pháp
Tidymint miễn phí, mã nguồn mở, có tiếng Việt. Mọi thứ luôn vào Thùng rác trước, bạn tự quyết.
Nguồn tham khảo
- Docker: docker system prune
- Docker: dọn đối tượng không dùng
- npm: npm cache
- Homebrew FAQ
- pip: pip cache
- Ollama FAQ: nơi lưu mô hình
- Apple Developer: lấy ký hiệu hệ điều hành để đọc báo cáo lỗi
- Apple Developer: build app kèm thông tin gỡ lỗi (giữ archive)
- Kodeco: hiểu và quản lý dung lượng Xcode