Cách dọn dẹp các gói Snap và giải phóng dung lượng ổ đĩa trên Linux
Một trong những lợi ích chính của các bản phân phối Linux là hệ thống quản lý gói của chúng. Trình quản lý gói trên Linux cho phép bạn tự động cài đặt phần mềm và hoàn thành công việc chỉ bằng một vài lệnh.
Không giống như các trình quản lý gói khác, Snap có các thuộc tính quản lý phụ thuộc tốt. Nhưng có một cảnh báo trước, các gói Snap có xu hướng rất cồng kềnh và tiêu tốn nhiều dung lượng đĩa. May mắn thay, thật dễ dàng để dọn dẹp các gói Snap trên Linux.
Mục Lục
Tại sao các gói Snap cồng kềnh?
Quản lý các phần phụ thuộc phần mềm từ lâu đã là một gót chân Achilles đối với các trình quản lý gói Linux. Phụ thuộc phần mềm có nghĩa là khi một phần mềm dựa vào các gói hoặc thư viện khác để hoạt động bình thường.
Snap đã giới thiệu một cách triệt để để xử lý các phần phụ thuộc trên Linux: đóng gói phần mềm và các phần phụ thuộc của nó trong một gói duy nhất được gọi là snap.
Tuy nhiên, việc kết hợp tất cả các phụ thuộc và phần mềm cốt lõi trong một gói duy nhất dẫn đến phần mềm tương đối lớn hơn so với các trình quản lý gói khác như APT, Pacman, v.v.
Một lý do khác cho các gói Snap cồng kềnh là các snaps có nghĩa là được khôi phục về phiên bản trước sau khi cập nhật phần mềm. Cả phiên bản phần mềm hiện tại và trước đó đều được lưu trữ trên PC Linux của bạn, điều này có nghĩa là các snaps tiêu tốn rất nhiều dung lượng ổ đĩa.
Đây là cách bạn có thể dọn dẹp các gói Snap và lấy lại dung lượng đĩa quý giá.
1. Loại bỏ các gói Rollback
Như đã đánh dấu trước đó, một tính năng độc đáo của các gói Snap là khả năng dễ dàng quay lại phiên bản trước của bất kỳ gói phần mềm nào đã được cài đặt qua Snap. Để đạt được điều này, bất cứ khi nào bạn cập nhật gói Snap lên phiên bản mới, phần mềm cũ vẫn được giữ trên máy tính của bạn.
Để liệt kê tất cả các gói Snap đã cài đặt bao gồm các phiên bản khôi phục của chúng, hãy chạy lệnh sau:
snap list --all
Như bạn có thể thấy, từ đầu ra trước đó, một số gói được liệt kê hai lần. Ví dụ, các canonical-livepatch gói có hai phiên bản, một phiên bản bị vô hiệu hóa và một phiên bản khác đang hoạt động. Phiên bản bị vô hiệu hóa là phiên bản trước của gói này mà bạn có thể quay lại. Nó không được sử dụng, theo nghĩa đen chỉ tiêu tốn dung lượng đĩa.
Để xóa các phiên bản gói Snap trước đó hoặc đã bị vô hiệu hóa, bạn có thể sử dụng Tái bản con số. Trong trường hợp này, số Rev của người khuyết tật canonical-livepatch gói là 229, vì vậy bạn có thể chạy lệnh sau để xóa gói:
sudo snap remove canonical-livepatch --revision=229
Hãy nhớ thay thế tên gói và số sửa đổi trong lệnh trên.
2. Xóa các gói Snap không sử dụng
Thỉnh thoảng, bạn nên liệt kê tất cả các snap được cài đặt trên PC của mình bằng lệnh sau:
sudo snap list
Tìm bất kỳ gói nào bạn không sử dụng từ đầu ra và xóa chúng bằng cách sử dụng:
sudo snap remove package_name
Thường xuyên theo dõi dung lượng ổ đĩa mà các gói đang tiêu thụ bằng cách sử dụng lệnh du. Snaps chủ yếu được lưu trữ trong thư mục chính của bạn trong búng tay thư mục.
du -h ~/snap
3. Loại bỏ các gói phụ thuộc không sử dụng
Mặc dù Snap rất giỏi trong việc quản lý các phần phụ thuộc, nhưng thách thức là trong một số trường hợp, nó cài đặt nhiều phần phụ thuộc hơn mức cần thiết, dẫn đến các gói chiếm quá nhiều dung lượng ổ đĩa.
Để kiểm soát chi tiết các phụ thuộc phần mềm, bạn nên sử dụng trình quản lý gói mặc định của bản phân phối. Bạn có thể sử dụng các lệnh sau để xóa các gói không sử dụng:
Trên các bản phân phối Linux dựa trên Debian:
sudo apt autoremove
Trên các bản phân phối dựa trên RHEL:
sudo dnf autoremove
Trên các bản phân phối Linux dựa trên Arch:
sudo pacman -Rns $(pacman -Qdtq)
Lệnh trước, tùy thuộc vào bản phân phối của bạn, sẽ tạo một cây phụ thuộc và loại bỏ bất kỳ gói phụ thuộc nào mà hệ thống của bạn không cần.
4. Sử dụng Trình quản lý gói khác nếu có thể
Hãy đối mặt với nó, snaps là tốt đẹp; nhưng nếu bạn đang sử dụng máy có dung lượng ổ đĩa hạn chế, bạn nên sử dụng trình quản lý gói thay thế như APT, Pacman hoặc DNF.
Đầu tiên, loại bỏ gói bằng cách sử dụng sudo snap xóa gói_name lệnh và sau đó cài đặt lại gói bằng APT hoặc trình quản lý gói mặc định của bạn.
Trên các bản phân phối Linux dựa trên Debian:
sudo apt install package_name
Trên RHEL, hãy chạy:
sudo dnf install package_name
Trên các bản phân phối Linux dựa trên Arch, hãy sử dụng:
sudo pacman -S package_name
Nhớ thay tên gói hàng trong lệnh với tên gói thực tế.
Lưu ý rằng một số gói phần mềm chỉ có dạng gói Snap. Vì vậy, ngay cả khi bạn sử dụng trình quản lý gói mặc định trong nền, nó vẫn sẽ sử dụng Snap để cài đặt. Chẳng hạn, trình duyệt Firefox trên Ubuntu. Ngay cả khi bạn sử dụng APT, nó sẽ cài đặt gói Firefox Snap.
Các gói Snap rất tuyệt, nhưng chúng cồng kềnh!
Mặc dù cồng kềnh, nhưng các gói Snap có rất nhiều ưu điểm như quản lý phụ thuộc tốt hơn và bảo mật. Ngoài ra, các gói Snap tương thích phổ biến với tất cả các bản phân phối Linux chính.