Snap, AppImage và Flatpak có gì khác biệt?

Hệ thống Linux phổ biến vì nhiều lý do, nhưng cài đặt ứng dụng không phải là một trong số đó. Các ứng dụng trong Linux được phân phối dưới dạng gói và có đủ loại phiên bản. Các hệ thống đóng gói khác nhau về cơ chế cài đặt, khả năng sử dụng và cập nhật.

Sau đây, Quantrimang.com sẽ xem xét và so sánh ba định dạng gói nổi bật: Snap, AppImage và Flatpak, tất cả đều độc lập với bản phân phối.

Định dạng gói là gì?

Các định dạng gói là những kho lưu trữ chứa code chương trình và siêu dữ liệu cần thiết để chạy chúng. Linux hỗ trợ một số định dạng gói và các nhà phát triển có thể chọn gói ứng dụng ở bất kỳ định dạng nào họ muốn. Với tư cách là người dùng, bạn sẽ cần tải xuống gói được yêu cầu và cài đặt nó thông qua trình quản lý gói để chạy ứng dụng.

Ubuntu và các bản phân phối dựa trên Debian khác sử dụng định dạng gói .deb nguyên bản, trong khi Fedora, RHEL và CentOS sử dụng .rpm. Các gói gốc rất nhanh vì chúng được thiết kế và biên dịch đặc biệt cho hệ thống, đồng thời chúng cũng chia sẻ thư viện, giúp cho các ứng dụng có dung lượng nhỏ hơn. Tuy nhiên, những gói gốc yêu cầu người dùng tự cập nhật và duy trì các dependency.

Các gói distro độc lập như Snap, AppImage và Flatpak cung cấp những ứng dụng có thể chạy trên các máy khác nhau. Chúng loại bỏ các vấn đề liên quan đến dependency mà nhiều người dùng Linux phải đối mặt hàng ngày và làm cho cuộc sống của các nhà phát triển dễ dàng hơn rất nhiều. Tuy nhiên, điều này cũng dẫn đến các file nhị phân có dung lượng lớn hơn.

Snap, AppImage và Flatpak khác gì nhau?

Như đã nêu ở trên, cả Snap, AppImage và Flatpak đều cung cấp các phương tiện đóng gói ứng dụng độc lập với bản phân phối Linux. Hãy xem xét kỹ một số tính năng đáng chú ý cũng như ưu và nhược điểm của chúng.

1. Snap

Snap là một hệ thống gói do Canonical phát triển và có sự hỗ trợ đáng kể của công ty. Khi bạn cài đặt phiên bản snap của một ứng dụng, nó bao gồm tất cả các thư viện và dependency cần thiết để chạy ứng dụng đó. Điều này giúp người bảo trì ứng dụng tiết kiệm thời gian cần thiết để triển khai các bản build khác nhau cho những hệ thống khác nhau.

Bạn có thể cài đặt snaps từ Snap Store trực tiếp hoặc thông qua dòng lệnh. Nhiều bản phân phối Linux phổ biến đã sử dụng Snap, bao gồm Ubuntu, Manjaro, Linux Mint, Debian, Kali và RHEL. Một lợi ích chính khác của ứng dụng Snap là chúng cũng chạy trên hệ thống IoT và Cloud mà không cần sửa đổi.

Snap Store trong Linux
Snap Store trong Linux

Snap cũng cho phép người dùng có nhiều phiên bản của cùng một ứng dụng. Bản chất tự cập nhật của snap đảm bảo người dùng không phải lo lắng về việc cập nhật thủ công. Tuy nhiên, vì các gói snap chứa tất cả các dependency cần thiết, chúng sẽ cồng kềnh hơn các gói .deb hoặc .rpm vani. Ngoài ra, phiên bản snap của nhiều ứng dụng chạy chậm hơn AppImage hoặc Flatpak.

Dưới đây là một số lệnh snap có thể hữu ích nếu bạn mới bắt đầu. Chức năng của mỗi lệnh được liệt kê dưới dạng comment.

# cài đặt VLC Media Player
snap install vlc

# danh sách các snap đã cài đặt
snap list

# cập nhật VLC Media Player
snap refresh vlc

# hoàn nguyên VLC Media Player về phiên bản trước
snap revert vlc

# loại bỏ VLC Media Player
snap remove vlc
Các lệnh snap
Các lệnh snap

2. AppImage

AppImage là một cách tuyệt vời để dùng thử các ứng dụng mới mà không cần cài đặt chúng trên máy. Khái niệm đằng sau AppImage khá đơn giản: Mỗi ứng dụng một file. Bằng cách này, các nhà phát triển có thể đảm bảo tính di động của ứng dụng và người dùng có thể dùng thử những gói mới mà không cần cài đặt. Một ưu điểm chính của AppImage là chúng không yêu cầu quyền sudo trong Linux.

Để dùng thử AppImage, tất cả những gì bạn cần làm là tải xuống gói, làm cho nó có thể thực thi được và chạy gói, tương tự như cách file .exe hoạt động trong Windows.

AppImageHub là kho lưu trữ trung tâm cho các gói AppImage và chứa nhiều ứng dụng phổ biến. Bạn cũng có thể tải xuống AppImage từ các trang web của nhà cung cấp nếu có sẵn. Nhưng hãy tránh xa các AppImage được tải xuống từ một nguồn không đáng tin cậy.

Gói AppImage VLC Video Player
Gói AppImage VLC Video Player

AppImage thường nhanh hơn snap hay flatpak và cần ít dung lượng lưu trữ hơn. Chúng cũng dễ dàng xóa, vì vậy bạn có thể loại bỏ các file AppImage bất cứ lúc nào mình muốn mà không làm gián đoạn những tiến trình hệ thống khác.

Dưới đây là các lệnh cần thiết để chạy file AppImage trong Linux từ dòng lệnh:

# cấp quyền thực thi cho file
chmod a+x *.AppImage

# thực thi AppImage
./*.AppImage

3. Flatpak

Flatpak là một hệ thống gói khác cung cấp các ứng dụng có những dependency bắt buộc. Người dùng có thể tìm và cài đặt các flatpak từ cửa hàng phân phối của những hệ thống Linux phổ biến hoặc thông qua CLI.

Flatpak là một hệ thống phi tập trung, nghĩa là bạn có thể lấy các gói từ một số repo hoặc remote (theo thuật ngữ của Flatpak). Flathub là remote phổ biến nhất và có hàng nghìn ứng dụng.

Ứng dụng flatpak phổ biến
Ứng dụng flatpak phổ biến

Các ứng dụng Flatpak chạy trong sandbox theo mặc định, một môi trường ứng dụng tách biệt với runtime của hệ thống host. Sandbox này bao gồm mọi thứ cần thiết để chạy phần mềm. Bản chất riêng biệt của các gói Flatpak làm cho chúng trở nên an toàn và các thay đổi hệ thống chỉ có thể xảy ra nếu người dùng đưa ra sự cho phép rõ ràng.

Tuy nhiên, các gói Flatpak thường chiếm nhiều dung lượng hơn Snap hoặc AppImage.

Chúng cũng chậm hơn so với AppImage nhưng nhanh hơn các gói Snap. Flatpak được cài đặt theo mặc định trên các bản phân phối Linux hiện đại. Nếu không, bạn có thể cài đặt nó bằng các lệnh sau:

Trên Ubuntu/Debian:

sudo apt install flatpak

Trên Arch Linux:

sudo pacman -S flatpak

Trên Fedora, RHEL và CentOS:

sudo dnf install flatpak

Bạn có thể thêm repo Flathub vào hệ thống của mình bằng snippet dưới đây:

flatpak remote-add --if-not-exists flathub \ https://flathub.org/repo/flathub.flatpakrepo

Hãy sử dụng flatpak install để cài đặt các gói. Lệnh dưới đây cài đặt VLC flatpak từ Flathub:

flatpak install flathub org.videolan.VLC

Snap, AppImage hay Flatpak là lựa chọn tốt hơn?

Vì cả ba định dạng gói đều độc lập với hệ điều hành, bạn có thể chọn sử dụng bất kỳ định dạng nào trong số chúng. Tuy nhiên, có những tình huống mà lựa chọn này vượt trội hơn so với những tùy chọn khác. Ví dụ, nếu tốc độ ứng dụng và kích thước chương trình quan trọng nhất với bạn, thì AppImage sẽ là giải pháp lý tưởng.

Nhưng nếu bạn muốn chạy ứng dụng của mình trên các nền tảng khác nhau, Snap nên là lựa chọn cần cân nhắc. Mặt khác, Flatpak cung cấp nhiều quyền kiểm soát hơn cho các nhà phát triển. Vì vậy, nếu là nhà phát triển, bạn có thể chọn Flatpak thay vì Snap. Tính khả dụng của ứng dụng cũng là một yếu tố quan trọng khi lựa chọn giữa Snap, AppImage và Flatpak.

Các gói độc lập với bản phân phối là một cách tuyệt vời để đảm bảo tính di động của phần mềm. Cả Snap, AppImage và Flatpak đều có những điểm độc đáo riêng khi được cung cấp cho người dùng cuối. Lựa chọn tùy thuộc vào mỗi người. Tốt hơn, hãy thử một số ứng dụng Linux tốt nhất từ ​​cả ba định dạng và xem cái nào phù hợp nhất với bạn.

Thứ Tư, 16/03/2022 16:12
513 👨 775
0 Bình luận
Sắp xếp theo
    ❖ Linux