Porównanie Snap vs FlatPak vs Appimage

Porównanie Snap vs FlatPak vs Appimage
Nowe formaty opakowań, takie jak SNAP, FlatPak i Appimage, zapewniają pakiety agnostyczne dystrybucji, które działają na większości dystrybucji Linux. Rozwiązuje to problemy z pakowaniem, napotykane przez programistów aplikacji, którzy chcą dystrybuować swoje aplikacje w wielu dystrybucjach Linux. Teraz mogą skupić się na jednej kompilacji, która działa wszędzie zamiast przeglądać różne standardy pakowania.

W tym artykule wymieniono główne różnice między tymi trzema formatami opakowań z perspektywy użytkowników końcowych. Różnice w architekturze opakowań i łatwość opakowania z punktu widzenia programistów nie zostaną tutaj omówione.

Poniższa tabela podsumowuje główne różnice między formatami plików SNAP, FlatPak i. Większość z nich jest oczywista, inne punkty zostały wyjaśnione poniżej tabeli porównawczej.

Pstryknąć Flatpak Appimage
Android, jak kontrola uprawnień (GUI i CLI) Tak Tak NIE
Obsługa piaskownicy Tak Tak Tak
Sandboxing obowiązkowy Tak Tak NIE
Natywna obsługa motywu Tak (z zastrzeżeniami) Tak (z zastrzeżeniami) Tak (z zastrzeżeniami)
Obsługa bibliotek pakietowych Tak Tak Tak
Przenośność aplikacji Tak (z zastrzeżeniami) Tak (z zastrzeżeniami) Tak
W pełni zawarte pojedyncze wsparcie wykonywalne (podobnie jak .pliki EXE w systemie Windows) NIE NIE Tak
Online App Store Tak Tak Tak
Wtyczki do oprogramowania do przechowywania aplikacji komputerowych Tak Tak NIE
Obsługa aplikacji równoległych wielu wersji Tak Tak Tak
Automatyczne aktualizacje Tak Tak Tak (z zastrzeżeniami)
Obsługa systemu operacyjnego Chrome (poprzez pojemniki Crostini) Tak Tak Tak
Rozmiar aplikacji Różni się, ale wyższy niż appimage Różni się, ale wyższy niż appimage Najniższy
Liczba aplikacji dostępnych w App Store Najwyższy Najniższy Gdzieś pomiędzy

Kontrola uprawnień dla użytkowników

Snap zapewnia zarówno interfejsy graficzne, jak i wiersze poleceń do uprawnień kontrolowanych przez użytkownika. Możesz użyć wstępnie zainstalowanej aplikacji „Ubuntu Software” do zarządzania uprawnieniami aplikacji SNAP.

Aby zobaczyć uprawnienia aplikacji SNAP za pomocą interfejsu wiersza poleceń, uruchom poniższe polecenie:

$ Snap Connections Chromium

Wymień „Chromum” na nazwę aplikacji Snap.

Aby zobaczyć listę wszystkich zainstalowanych aplikacji SNAP, uruchom poniższe polecenie:

Lista $ snap

Aby udzielić zgody kamery na chrom Snap, użyj poniższego polecenia:

$ Snap Connect Chromium: aparat

Aby odwołać zgodę kamery, uruchom poniższe polecenie:

$ snap odłącz chrom: aparat

Odpowiednie polecenia zarządzania uprawnieniami można znaleźć w kolumnie „Plug” (pokazane na zrzucie ekranu powyżej).

FlatPak zapewnia również interfejs do przyznawania i cofnięcia uprawnień. Możesz użyć aplikacji Gnome Software (wymaga GNOME 3.32.x) Aby zarządzać uprawnieniami za pomocą metody graficznej. Aby zobaczyć uprawnienia aplikacji FlatPak, uruchom poniższe polecenie:

$ FlatPak Info-Show-Permissions org.KDE.Platforma

Wymień „Org.KDE.Platforma ”z nazwą aplikacji FlatPak.

Aby wyświetlić listę wszystkich aplikacji FlatPak zainstalowanych w twoim systemie, uruchom poniższe polecenie:

Lista $ flatpak

Aby zmienić uprawnienia aplikacji FlatPak, musisz zmienić wartości zmiennych pokazanych na powyższym zrzucie ekranu. Na przykład poniższe polecenie udostępni cały system plików w aplikacji Flappak:

$ sudo flatpak zastępuje org.KDE.Platforma -FileSystem = host

APPIMAGE nie obsługuje teraz szczegółowych kontroli uprawnień, ale programiści zasugerowali, że w przyszłości mogą być wdrażane kontrole uprawnień w stylu Androida.

Sandboxing

Snap, Flatpak i Appimage obsługuje środowiska aplikacji z piaskownicą po wyjęciu z pudełka. Sandbox to środowisko (lub kontener / system plików / archiwum), które jest całkowicie odizolowane i zdystansowane od systemu hosta. Każda interakcja z systemem hosta odbywa się przy użyciu ograniczonego interfejsu API i kontroli uprawnień. Niektóre z tych uprawnień jawnie wymagają informacji przez użytkowników lub mogą być całkowicie wyłączone przez użytkowników końcowych. Aplikacja z piaskownicą jest bezpieczna niż jakakolwiek inna aplikacja, która ma pełny dostęp do systemu hosta. Wszystkie aplikacje na Androida działają w piaskownicy, a te trzy format opakowań działają na podobny pomysł.

Natywna obsługa motywu

Wszystkie trzy formaty opakowań obsługują natywny wygląd aplikacji GTK i QT, choć z pewnymi ograniczeniami. Na przykład SNAP i FlatPak wymagają pakowania tematów systemowych w odpowiednich formatach. Jeśli używasz motywów innych firm i pakietów ikon, możesz nie uzyskać prawidłowego motywu, kursora i ikon aplikacji. Integracja poprawiła nadgodziny, ale nieco nie są one w porównaniu z aplikacjami zainstalowanymi z oficjalnego menedżera pakietów dystrybucji.

Przenośność aplikacji

Aplikacja Appimage to pojedynczy plik wykonywalny (podobny do systemu Windows ' .pliki exe). Możesz łatwo udostępniać go między systemami lub przesyłać do chmury. Aplikacje Snap i FlatPak mogą być przenośne, włączając samą aplikację, a także repozytoria dzieci, od których zależy aplikacja. Jednak proces nie jest tak łatwy jak Appimage i wymaga użycia wielu poleceń, aby osiągnąć te same wyniki.

Automatyczne aktualizacje

Aplikacje Snap i FlatPak są instalowane z scentralizowanych repozytoriów aplikacji, a aplikacje można automatycznie aktualizować bez interwencji użytkownika. APPIMAGE brakuje solidnego mechanizmu automatycznej aktualizacji. Użytkownicy muszą ręcznie pobrać nowy binarny Appimage i wymienić istniejącego, aby zainstalować aktualizacje. Konserwatorzy aplikacji AppImage czasami zawierają własny mechanizm aktualizacji, który okresowo sprawdza dostępność aktualizacji na swoich serwerach lub wymaga interwencji użytkownika. Niedawno programistów Appimage dostarczyli narzędzie do aktualizacji istniejących binarów poprzez dostarczanie aktualizacji Delta. Jednak nadal wymaga pobrania narzędzia aktualizacji i ręcznego używania go z istniejącym binarnym Appimage. Nie ma jeszcze żadnego mechanizmu aktualizacji głośnomówiącego dla AppImage.

Rozmiar aplikacji

Appimage ma najniższy rozmiar aplikacji, najprawdopodobniej dlatego, że obsługuje binaria w formacie sprężonym. Rozmiary aplikacji Snap i Flatpak różnią się znacznie w zależności od aplikacji i trudno jest ustalić, który zapewnia niższy rozmiar instalacji. W celu odniesienia, APPIMAGE APPIMAGE INKSCAPE W momencie pisania tego artykułu wynosił około 98 MB, SNAP wynosił około 183 MB, a Flatpak około 109 MB.

Wniosek

Uniwersalne pakiety aplikacji to sytuacja korzystna dla programistów, jak i użytkowników końcowych. Te formaty opakowań umożliwiają znacznie szybsze dostarczanie bezpiecznych aplikacji. Otwierają również drzwi dla programistów, którzy unikają Linuksa ze względu na różne standardy pakowania używane w różnych rozkładach. W tych trzech formatach opakowań są pewne problemy. Wszystkie są jednak w aktywnym rozwoju, a problemy te zostaną ustalone w godzinach nadliczbowych. Universal Cross Distribution to przyszłość, a ich przyjęcie wzrośnie. Powoli, ale stopniowo, dystrybucje mogą przebiegać do Snap, FlatPak lub Appimage w przyszłości, z wyjątkiem bibliotek podstawowych i niezbędnych pakietów potrzebnych do pracy systemu operacyjnego.