Cách dọn dẹp các gói Snap và giải phóng dung lượng ổ đĩa trên Linux

Cách dọn dẹp các gói Snap và giải phóng dung lượng ổ đĩa trên Linux

Chia sẻ kiến thức 05/08/2023

Các gói Snap rất thuận tiện để cài đặt nhưng lại chiếm nhiều dung lượng. Bài viết dưới đây hướng dẫn cách dọn dẹp các gói Snap trên Linux.

 

Một trong những điểm mạ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. Chúng giú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ần phụ thuộc (dependency) tốt. Tuy nhiên, các gói Snap thường ất nặng và tiêu tốn nhiều dung lượng đĩa. May mắn là việc dọn dẹp chúng rất dễ dàng. 

 

Tại sao các gói Snap lại nặng?

gói snap trong trung tâm phần mềm Ubuntu

Quản lý các phần phụ thuộc của phần mềm từ lâu đã là một điểm yếu của 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 các gói phần mềm 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 thiết kế để 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 máy tính Linux, đồng nghĩa với việc 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à giải phóng dung lượng đĩa quý giá.

1. Loại bỏ các gói cũ

Như đã nói, 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. Điều này là do 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.

Để 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, sử dụng lệnh sau:

snap list --all
snap_package_list_all_packages

Như bạn có thể thấy, một số gói được liệt kê hai lần. Ví dụ: gói canonical-livepatch có hai phiên bản, một phiên bản bị vô hiệu hóa (disabled) 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, chỉ đơn thuàn chiếm dụng 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 số Rev. Trong trường hợp này, số Rev của gói canonical-livepatch bị vô hiệu hóa là 229, vì vậy bạn có thể chạy lệnh sau để xóa gói này:

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 để xóa bất kỳ gói nào bạn muố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 máy tính bằng lệnh sau:

sudo snap list

Trong đầu ra, tìm bất kỳ gói nào bạn không sử dụng và xóa chúng bằng lệnh:

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 snap trong thư mục chính của bạn.

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 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. Chúng 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.

 

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)
loại bỏ các phụ thuộc không sử dụng trên vòm linux

Gõ Y để xác nhận xóa các gói. 

4. Sử dụng Trình quản lý gói khác nếu có thể

Snaps rất tuyệt vời, 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 khác như APT, Pacman hoặc DNF.

Trước tiên, hãy xóa gói bằng lệnh Sudo snap remove package_name rồi 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 tên_gói

Trên RHEL, hãy chạy:

sudo dnf install tên_gói

Trên các bản phân phối Linux dựa trên Arch:

sudo pacman -S tên_gói

Hãy nhớ thay thế tên_gói trong lệnh bằng 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.  Ví dụ như 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.

 

Tìm hiểu ngay chương trình học công nghệ thông tin trực tuyến tại FUNiX ở đây:

Vân Nguyễn

Dịch từ: https://www.makeuseof.com/clean-up-snap-packages-on-linux/

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, phường Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        

Cơ quan chủ quản: Công ty Cổ phần Giáo dục Trực tuyến FUNiX
MST: 0108171240 do Sở kế hoạch và Đầu tư thành phố Hà Nội cấp ngày 27 tháng 02 năm 2018
Địa chỉ:
Văn phòng Hà Nội: Tầng 4, Tòa nhà 25T2, Đường Nguyễn Thị Thập, phường Yên Hòa, Hà Nội.
Văn phòng TP.HCM: Lầu 8, Tòa nhà Giày Việt Plaza 180-182 Lý Chính Thắng, phường Nhiêu Lộc, TP. Hồ Chí Minh.
Hotline: 078 231 3602 – Email: info@funix.edu.vn

yêu cầu gọi lại