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.