Wyjaśniliśmy, co Flatpak, Snap iAppImage znajdują się w artykule Jak się układają? opublikowane ponad 2 lata temu i chociaż od tego czasu technologie znacznie się poprawiły, oceniam je z perspektywy programisty.
Piaskownica / Zamknięcie
Możesz uruchomić AppImage bez piaskownicy, a także używać jej z różnymi piaskownicami, np. AppArmor i Firejail.
Snap może działać bez piaskownicy, ale nie można go używać z innymi piaskownicami, ponieważ jest ściśle powiązany z AppArmor.
Flatpak nie może działać bez piaskownicy ani nie może być używany z innymi piaskownicami innymi niż Bubblewrap .
Instalacja / Wykonanie
Można uruchomić AppImage po ustawieniu pliku wykonywalnego bez uprawnień administratora, bez dekompresji i w systemie offline.
Snap musi być zainstalowany przez snapd, nie można uruchomić bez uprawnień administratora, dopóki nie zostanie zainstalowany, ani też jego pliku do pobrania nie można umieścić obok exe
i dmg , którą użytkownicy mogą instalować w systemach offline, ale może działać z nieskompresowanego źródła.
Flatpak musi być zainstalowany przez Flatpak narzędzie po stronie klienta, nie może działać bez uprawnień administratora do czasu zakończenia instalacji, nie może działać z poziomu nieskompresowane źródło. Ponadto pliki flatpakref
wymagają Internetu i pakiety flatpak wymagają zainstalowania środowiska uruchomieniowego.
AppImage może przechowywać i uruchamiać aplikacje z niestandardowych lokalizacji, takich jak CD-ROM i udziały sieciowe. Flatpak może zrobić to samo po pewnej konfiguracji, podczas gdy Snap obecnie nie może.
W tej sekcji AppImage bierze górę, ponieważ jego aplikacje są bardziej elastyczne.
Dystrybucja i aktualizacje aplikacji
Centralne repozytorium Flatpak i Snap to FlatHub, i Snap Store odpowiednio. Użytkownicy mogą pobierać AppImages z AppImageHub, platformy katalogowania oprogramowania dostępnego jako pakiety AppImage.
W przeciwieństwie do AppImage i FlatPak, jednakSnap Store to jedyny dominujący sklep z aplikacjami z jednym repozytorium na urządzenie. To, czy to dobrze, czy źle, należy do ciebie.
Aplikacje spakowane przy użyciu wszystkich 3 metod mogą mieć wiele wersji działających równolegle i można je łatwo skopiować na inny komputer. Mają jednak swoje unikalne implementacje.
Wszystkie 3 obsługują binarne aktualizacje delta, ale tylko AppImage aplikacje mogą aktualizować się samoczynnie jako Snap aplikacje wymagają snapd do zainstalowania i Flatpak aplikacje wymagająFlatpak do zainstalowania.
Podsumowanie
AppImages i Snap pozostają skompresowane przez cały czas ( Flatpak jest kompresowany tylko po stronie serwera) i zazwyczaj ma mniejszy rozmiar niż aplikacje Flatpak . AppImage jest również niezależny od jakiegokolwiek twórcy dystrybucji i ma na celu ujednolicenie ekosystemów platformy Linux.
Snap jest własnością Canonical i umieszcza swój zatrzask bazowy nad podstawową dystrybucją, podczas gdy Flatpak to inicjatywa Red Hat, która umieszcza dystrybucję Yocto nad podstawowa dystrybucja.Ponadto, w przeciwieństwie do Snap, gdzie programiści muszą płacić na Canonical, AppImage i Flatpak są bezpłatne.
Z mojego punktu widzenia AppImages to idealna metoda pakowania, ponieważ jest najwygodniejsza zarówno dla programistów, jak i użytkowników końcowych. Jednak możliwe jest, aby współistniały, zwłaszcza gdy istnieją przypadki, w których programiści woleliby użyć jednego z drugich. Powiedz nam, co myślisz w sekcji komentarzy poniżej.
Na moje poszukiwania do tego artykułu duży wpływ miały podobne projekty i wątki Reddit tutaj i tutaj. Zapoznaj się z nimi, aby uzyskać więcej informacji.