Jakie są różnice między snapami, appimage, flatpak i innymi?

105

Ostatnio dostaję to pytanie od studentów i chociaż mam wiele informacji do zaoferowania, nie znalazłem źródła, w którym mogę wskazać ludziom, gdzie mogą przeczytać odpowiedź na aktualizację (znalazłem wiele błędnych informacji i nieaktualnych informacji ). Tak więc niektóre pytania dotyczące formatów opakowań, takich jak Snap, Appimage, Flatpak i inne w tej ewolucji uniwersalnych systemów pakowania to:

  • Kto stworzył format pakietu?
  • Jakie funkcje oferuje?
  • Jakie funkcje są dla niego unikalne? (Że inni jeszcze nie mają)
  • Kto to obsługuje?
  • Jakie dystrybucje tego używają?
  • Jaki jest cel pakietu? (Na komputery stacjonarne, chmury, urządzenia mobilne itp.)
  • Które są bardziej aktywnie rozwijane?
Luis Alvarado
źródło

Odpowiedzi:

68

Oto długie tabelaryczne porównanie funkcji AppImage vs. Snap i Flatpak. Pochodzi z AppImage Wiki na GitHub :

AppImage vs. Snap vs. Flatpack Porównanie

Kurt Pfeifle
źródło
43
Myślę, że warto zauważyć, że ten wykres jest zbudowany z perspektywy AppImage. Oznacza to, że domyślnym zestawem funkcji jest zestaw funkcji AppImage, a pozostałe są porównywane z jego funkcjami. To daje stronniczą przewagę AppImage. Jest również nieco nieaktualny. Na przykład Snap dodał obsługę motywów tej jesieni.
Dan
1
@ Dan: Jeśli wiesz, że Snap dodał wsparcie dla nich - dlaczego po prostu nie edytujesz w tabeli? Ponadto, jeśli znasz inne funkcje Snap i / lub Flatpak: zapraszam do zmiany tabeli odpowiednimi pozycjami na wiki AppImage ...
Kurt Pfeifle 16.04.18
11
Nie jestem pewien, jak to powiedzieć @Kurt. Spójrz na przykład w sekcji „Cele”. Pokazuje wyłącznie cele AppImage, tak jakby żaden inny projekt nie miał żadnych celów. Jakby liczyły się tylko cele AppImage.
Dan
5
Rozumiem twój punkt widzenia - mógłbym edytować wiki. Jednak twoją odpowiedzią jest gigantyczny obraz, który prawdopodobnie pozostanie bez zmian, nawet przy zmianie wiki. Myślę, że uprzedzenie jest warte wspomnienia w kontekście twojej odpowiedzi dla przyszłych czytelników Zapytaj Ubuntu.
Dan
2
@ Dan: Zredagowałem odpowiedź 4 lipca, aby wstawić zaktualizowaną wersję zrzutu ekranu ze strony internetowej (dokładnie w celu uwzględnienia pewnych modyfikacji, które miały miejsce na wiki). Gdzie jest dla Ciebie problem w edytowaniu oryginalnej Wiki, tworzeniu nowego zrzutu ekranu, a następnie sugerowaniu modyfikacji tej odpowiedzi za pomocą nowego zrzutu ekranu?
Kurt Pfeifle,
51

Snapy zostały utworzone przez Canonical dla Ubuntu. Główne zalety zatrzasków to:

  • Niezależność od zależności - wszystkie biblioteki i zależności są zawarte w pakiecie. Pozwala to również na posiadanie większej liczby wersji tego samego programu.
  • Piaskownica - snapy używają zmodyfikowanego AppArmor do piaskownicy aplikacji
  • Aktualizacje delta - przystawki powinny również umożliwiać aktualizacje delty

Główną wadą snapów jest to, że oprogramowanie może używać tylko bibliotek zawartych w jego pakiecie. Jest to potencjalne zagrożenie bezpieczeństwa, ponieważ autor pakietu musi aktualizować i poprawiać wszystkie biblioteki.

Snap-y mogą obecnie działać w Ubuntu, Arch Linux, Fedora, Linux Mint, CentOS i Gentoo. Są one również używane w Ubuntu Touch. Są przeznaczone dla komputerów stacjonarnych, serwerów, telefonów, Internetu Rzeczy i routerów.

Flatpak ma te same zalety co snapy . Jednak używa piaskowników zamiast AppArmour. Główną różnicą jest to, że Flatpaks może zarówno korzystać z bibliotek zawartych w pakiecie, jak i bibliotek współdzielonych z innego Flatpaka.

Deweloper Flatpak to pracownik Red Hat Alexander Larsson. Oprogramowanie Flatpak jest obecnie dostępne w Arch Linux, Debian, Fedora, Mageia, Solus i Ubuntu. Jest skoncentrowany tylko na komputerach stacjonarnych.

AppImages opracował Simon Peter. Podobnie jak w snapach lub Flatpak, pakiet zawiera wszystkie biblioteki niezbędne do uruchomienia programu. Programy AppImage nie są w trybie piaskownicy i nie wymagają praw root do uruchomienia. Według strony internetowej projektu, AppImages powinien działać na Arch Linux, Centos, Debian, Fedora, OpenSUSE, Red Hat Linux i Ubuntu.

Magma
źródło
3
Solus ogłosił wsparcie dla flatpak w styczniu 2017 r.
Anthon
8
Wszyscy powinni właśnie zbudować na appimage. Zamiast na nowo wynaleźć tę samą ideologię i wprowadzić fragmentację i zamieszanie. Zauważ też, że ponieważ te przenośne pakiety mają wszystkie biblioteki, będą miały znacznie większy rozmiar w porównaniu do aplikacji korzystającej z bibliotek współdzielonych instalowanych przez apt lub .deb. Jeśli musisz wiedzieć, który jest bardziej popularny, flatpak obecnie bije snapy.
answerSeeker
Podejrzewam, że atak Spectre jest na wolności, dlatego ze względów bezpieczeństwa zainteresowanie bibliotekami współdzielonymi będzie mniejsze. :-)
Chris
4
@answerSeeker: twój komentarz na temat przenośnych pakietów ma „znacznie większy rozmiar w porównaniu do aplikacji korzystającej z bibliotek współdzielonych instalowanych przez apt lub .deb” niekoniecznie poparty faktami. AppImages i Snap są kompresowane do obrazów SquashFS (nieprawda w przypadku Flatpak). Nigdy nie są one rozpakowywane na dysk, nawet w czasie wykonywania. AppImages, podczas uruchamiania, samodzielnie montują się na tymczasowo utworzonym punkcie montowania /tmp/.mount_<random-chars>i uruchamiają się stamtąd - nadal skompresowane! Zobacz liczby dla przykładu LibreOffice na zrzucie mojej odpowiedzi poniżej ...
Kurt Pfeifle
1
@PabloBianchi: nowsze AppImages (nowszej odmiany „typu 2” ) mogą mieć wbudowany mechanizm aktualizacji. Spowoduje to pobranie pliku różnic binarnych różnic z oryginalnej lokalizacji AppImage, co pozwala zaoszczędzić rozmiar i czas pobierania, gdy nowa wersja będzie dostępna i gdy użytkownik wskaże, że jej chce. Pomagają w tym narzędzia appimageupdatetool(CLI) i AppImageUpdate-Qt(GUI) .
Kurt Pfeifle