Opakowania

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 niezależne od dystrybucji, które działają w większości dystrybucji Linuksa. Rozwiązuje to problemy z pakietami, z którymi borykają się twórcy aplikacji, którzy chcą rozpowszechniać swoje aplikacje w wielu dystrybucjach Linuksa. Teraz mogą skupić się na jednej konfiguracji, która działa wszędzie, zamiast przechodzić przez różne standardy pakowania.

W tym artykule wymienimy główne różnice między tymi trzema formatami opakowań z perspektywy użytkowników końcowych. Różnice w architekturze pakietów i łatwości pakowania z punktu widzenia programistów nie będą tutaj omawiane.

Poniższa tabela podsumowuje główne różnice między formatami plików Snap, Flatpak i AppImage. Większość z nich nie wymaga wyjaśnień, inne punkty wyjaśniono poniżej tabeli porównawczej.

Kłapnięcie Flatpak Obraz aplikacji
Przełączniki kontroli uprawnień w systemie Android (GUI i CLI) tak tak Nie
Wsparcie dla piaskownicy tak tak tak
Obowiązkowa piaskownica tak tak Nie
Wsparcie dla motywów natywnych Tak (z zastrzeżeniami) Tak (z zastrzeżeniami) Tak (z zastrzeżeniami)
Obsługa bibliotek dołączonych tak tak tak
Przenośność aplikacji Tak (z zastrzeżeniami) Tak (z zastrzeżeniami) tak
W pełni zawarte, pojedyncze, wykonywalne wsparcie (podobne do .pliki exe w systemie Windows) Nie Nie tak
Internetowy sklep z aplikacjami tak tak tak
Wtyczki do oprogramowania Desktop App Store tak tak Nie
Obsługa wielu wersji równoległych aplikacji tak tak tak
Automatyczne aktualizacje tak tak Tak (z zastrzeżeniami)
Obsługa Chrome OS (za pośrednictwem kontenerów Crostini) tak tak tak
Rozmiar aplikacji Różni się, ale wyższa niż AppImage Różni się, ale wyższa 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 interfejs graficzny, jak i wiersz poleceń dla uprawnień kontrolowanych przez użytkownika. Możesz użyć preinstalowanej aplikacji „Ubuntu Software”, aby zarządzać uprawnieniami aplikacji przyciągania.

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

$ połączenia zatrzaskowe chrom

Zastąp „chrom” nazwą swojej aplikacji Snap.

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

$ lista zatrzasków

Aby przyznać aparatowi pozwolenie na chromowanie, użyj poniższego polecenia:

$strzałka chrom: kamera

Aby cofnąć uprawnienia kamery, uruchom poniższe polecenie:

$zatrzask odłącz chrom: kamera

Odpowiednie polecenia do zarządzania uprawnieniami można znaleźć w kolumnie „Wtyczka” (pokazana na powyższym zrzucie ekranu).

Flatpak zapewnia również interfejs do nadawania i odwoływania uprawnień. Możesz użyć aplikacji GNOME Software (wymaga GNOME 3.32.x) zarządzanie uprawnieniami za pomocą metody graficznej. Aby zobaczyć uprawnienia aplikacji flatpak, uruchom poniższe polecenie:

$ flatpak info --show-permissions org.kde.Platforma

Zastąp „org.kde.Platforma” z nazwą Twojej 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 aplikacji flappak:

$ sudo flatpak override org.kde.Platforma --system plików=host

AppImage nie obsługuje obecnie szczegółowych kontroli uprawnień, ale programiści zasugerowali, że kontrole uprawnień w stylu Androida mogą zostać zaimplementowane w przyszłości.

Piaskownica

Snap, Flatpak i AppImage obsługują środowiska aplikacji w trybie piaskownicy po wyjęciu z pudełka. Piaskownica to środowisko (lub kontener/system plików/archiwum), które jest całkowicie odizolowane i oddalone od systemu hosta. Jakakolwiek interakcja z systemem hosta odbywa się przy użyciu ograniczonego interfejsu API i kontroli uprawnień. Niektóre z tych uprawnień wymagają wyraźnej zgody użytkowników lub mogą zostać całkowicie wyłączone przez użytkowników końcowych. Aplikacja w piaskownicy 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 formaty opakowań działają na podobnym pomyśle.

Wsparcie dla motywów natywnych

Wszystkie trzy formaty pakietów obsługują natywny wygląd i działanie aplikacji GTK i Qt, aczkolwiek z pewnymi ograniczeniami. Na przykład Snap i Flatpak wymagają pakowania motywów systemowych w odpowiednich formatach. Jeśli używasz motywów i pakietów ikon innych firm, możesz nie uzyskać prawidłowego motywu, kursora i ikon aplikacji. Integracja poprawiła się z czasem, ale nieco słabiej w porównaniu z aplikacjami zainstalowanymi z oficjalnego menedżera pakietów dystrybucji package.

Przenośność aplikacji

Aplikacja AppImage to pojedynczy plik wykonywalny (podobny do systemu Windows .pliki exe). Możesz go łatwo udostępniać między systemami lub przesyłać do chmury. Aplikacje Snap i Flatpak można przenosić, dołączając samą aplikację, a także repozytoria podrzędne, od których aplikacja jest zależna. 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 ze scentralizowanych repozytoriów aplikacji, a aplikacje mogą być automatycznie aktualizowane bez interwencji użytkownika. AppImage nie ma solidnego mechanizmu automatycznej aktualizacji. Użytkownicy muszą ręcznie pobrać nowy plik binarny AppImage i zastąpić istniejący, aby zainstalować aktualizacje. Opiekunowie aplikacji AppImage czasami zawierają własny mechanizm aktualizacji, który okresowo sprawdza dostępność aktualizacji na swoich serwerach lub wymaga interwencji użytkownika. Ostatnio programiści AppImage udostępnili narzędzie do aktualizacji istniejących plików binarnych, zapewniając aktualizacje delta. Jednak nadal wymaga pobrania narzędzia do aktualizacji i ręcznego użycia go z istniejącym plikiem binarnym AppImage. Nie ma jeszcze dostępnego mechanizmu aktualizacji bez użycia rąk dla AppImage.

Rozmiar aplikacji

AppImage ma najmniejszy rozmiar aplikacji, najprawdopodobniej dlatego, że obsługuje pliki binarne w skompresowanym formacie. Rozmiary aplikacji Snap i Flatpak różnią się znacznie w zależności od aplikacji i trudno jest ustalić, co zapewnia mniejszy rozmiar instalacji. Tylko dla odniesienia, Inkscape AppImage w momencie pisania tego artykułu miał około 98 MB, Snap miał około 183 MB, a Flatpak miał około 109 MB.

Wniosek

Uniwersalne pakiety aplikacji to sytuacja korzystna zarówno dla programistów, jak i użytkowników końcowych. Te formaty opakowań umożliwiają znacznie szybsze dostarczanie bezpiecznych aplikacji. Otwierają także drzwi programistom, którzy unikają Linuksa z powodu różnych standardów pakowania stosowanych w różnych dystrybucjach. W tych trzech formatach opakowań są pewne problemy, które należy rozwiązać. Jednak wszystkie są aktywnie rozwijane i te problemy zostaną naprawione z czasem. Uniwersalne pakiety cross-dystrybucyjne to przyszłość, a ich przyjęcie będzie rosło. Powoli, ale systematycznie, dystrybucje mogą w przyszłości przejść do kompilacji Snap, Flatpak lub AppImage, z wyjątkiem podstawowych bibliotek i niezbędnych pakietów, które są potrzebne do działania systemu operacyjnego.

Gry Najlepsze gry wiersza poleceń dla systemu Linux
Najlepsze gry wiersza poleceń dla systemu Linux
Wiersz poleceń jest nie tylko twoim największym sprzymierzeńcem podczas korzystania z Linuksa - może być również źródłem rozrywki, ponieważ możesz go ...
Gry Najlepsze aplikacje do mapowania gamepada dla systemu Linux
Najlepsze aplikacje do mapowania gamepada dla systemu Linux
Jeśli lubisz grać w gry na Linuksie za pomocą gamepada zamiast typowego systemu wprowadzania klawiatury i myszy, jest kilka przydatnych aplikacji dla ...
Gry Przydatne narzędzia dla graczy Linuksa
Przydatne narzędzia dla graczy Linuksa
Jeśli lubisz grać w gry w systemie Linux, prawdopodobnie używałeś aplikacji i narzędzi, takich jak Wine, Lutris i OBS Studio, aby poprawić wrażenia z ...