V tomto článku budou uvedeny hlavní rozdíly mezi těmito třemi formáty obalů z pohledu koncových uživatelů. Rozdíly v architektuře obalů a snadnost balení z pohledu vývojářů zde nebudeme popisovat.
Níže uvedená tabulka shrnuje hlavní rozdíly mezi formáty souborů Snap, Flatpak a AppImage. Většina z nich je vysvětlující sama, další body byly vysvětleny pod srovnávací tabulkou.
Přichytit | Flatpak | AppImage | |
Přepínání ovládacích prvků oprávnění jako Android (GUI a CLI) | Ano | Ano | Ne |
Podpora karantény | Ano | Ano | Ano |
Pískoviště je povinné | Ano | Ano | Ne |
Nativní podpora motivů | Ano (s výhradami) | Ano (s výhradami) | Ano (s výhradami) |
Podpora sdružených knihoven | Ano | Ano | Ano |
Přenositelnost aplikací | Ano (s výhradami) | Ano (s výhradami) | Ano |
Plně obsažená podpora jednoho spustitelného souboru (obdoba .soubory exe v systému Windows) | Ne | Ne | Ano |
Online obchod s aplikacemi | Ano | Ano | Ano |
Pluginy pro Desktop App Store Software | Ano | Ano | Ne |
Podpora více verzí paralelních aplikací | Ano | Ano | Ano |
Automatické aktualizace | Ano | Ano | Ano (s výhradami) |
Podpora systému Chrome OS (prostřednictvím kontejnerů Crostini) | Ano | Ano | Ano |
Velikost aplikace | Liší se, ale je vyšší než AppImage | Liší se, ale je vyšší než AppImage | Nejnižší |
Počet aplikací dostupných v App Store | Nejvyšší | Nejnižší | Někde mezi |
Ovládací prvky oprávnění pro uživatele
Snap poskytuje jak uživatelská oprávnění, tak grafická rozhraní a rozhraní příkazového řádku. Ke správě oprávnění rychlé aplikace můžete použít předinstalovanou aplikaci „Software Ubuntu“.
Chcete-li zobrazit oprávnění aplikace snap pomocí rozhraní příkazového řádku, spusťte následující příkaz:
$ snap připojení chromNahraďte „chrom“ názvem vaší snap aplikace.
Seznam všech nainstalovaných snapových aplikací zobrazíte spuštěním následujícího příkazu:
$ seznam snapůChcete-li udělit oprávnění fotoaparátu k chrómu, použijte následující příkaz:
$ snap connect chromium: kameraChcete-li odvolat oprávnění kamery, spusťte následující příkaz:
$ snap odpojit chrom: kameraPříslušné příkazy pro správu oprávnění najdete ve sloupci „Plug“ (na obrázku výše).
Flatpak také poskytuje rozhraní pro udělování a odvolávání oprávnění. Můžete použít softwarovou aplikaci GNOME (vyžaduje GNOME 3.32.x) ke správě oprávnění pomocí grafické metody. Chcete-li zobrazit oprávnění aplikace flatpak, spusťte následující příkaz:
$ flatpak informace - show-oprávnění org.kde.Plošina
Nahradit „org.kde.Platforma “s názvem vaší aplikace Flatpak.
Chcete-li zobrazit seznam všech aplikací flatpak nainstalovaných ve vašem systému, spusťte následující příkaz:
seznam $ flatpakChcete-li změnit oprávnění aplikace flatpak, musíte změnit hodnoty proměnných zobrazené na snímku obrazovky výše. Například níže uvedený příkaz zpřístupní celý souborový systém aplikaci flappak:
$ sudo flatpak přepíše org.kde.Platforma --filesystem = hostitelAppImage nyní nepodporuje granulární ovládací prvky oprávnění, ale vývojáři naznačili, že v budoucnu mohou být implementována ovládací prvky stylu Android.
Sandboxing
Snap, Flatpak a AppImage podporují prostředí aplikací v karanténě po vybalení z krabice. Sandbox je prostředí (nebo kontejner / souborový systém / archiv), které je zcela izolované a oddělené od hostitelského systému. Jakákoli interakce s hostitelským systémem se provádí pomocí omezeného ovládání API a oprávnění. Některá z těchto oprávnění výslovně vyžadují přihlášení od uživatelů nebo mohou být koncovými uživateli úplně deaktivována. Sandboxovaná aplikace je zabezpečená než jakákoli jiná aplikace, která má plný přístup k hostitelskému systému. Všechny aplikace pro Android běží v karanténě a tyto tři formáty balení fungují na podobném nápadu.
Nativní podpora motivů
Všechny tři formáty obalů podporují nativní vzhled a chování aplikací GTK a Qt, i když s určitými omezeními. Například Snap a Flatpak vyžadují zabalení systémových motivů do příslušných formátů. Pokud používáte balíčky motivů a ikon třetích stran, nemusí se zobrazit správné ikony motivů, kurzoru a aplikací. Integrace zlepšila přesčasy, ale ve srovnání s aplikacemi nainstalovanými od oficiálního správce balíků distribuce mírně zaostávají.
Přenositelnost aplikací
Aplikace AppImage je jeden spustitelný soubor (podobný systému Windows .soubory exe). Můžete jej snadno sdílet mezi systémy nebo nahrát do cloudu. Aplikace Snap a Flatpak lze snadno přenést zahrnutím samotné aplikace i dětských úložišť, na kterých aplikace závisí. Proces však není tak snadný jako AppImage a pro dosažení stejných výsledků vyžaduje použití více příkazů.
Automatické aktualizace
Aplikace Snap a Flatpak se instalují z centralizovaných úložišť aplikací a aplikace lze automaticky aktualizovat bez zásahu uživatele. AppImage postrádá robustní mechanismus automatické aktualizace. Uživatelé si pro instalaci aktualizací musí ručně stáhnout nový binární soubor AppImage a nahradit stávající. Správci aplikací AppImage někdy obsahují vlastní aktualizační mechanismus, který pravidelně kontroluje dostupnost aktualizací na jejich serverech nebo vyžaduje zásah uživatele. Nedávno vývojáři AppImage poskytli nástroj k aktualizaci existujících binárních souborů poskytnutím delta aktualizací. Stále však vyžaduje stažení aktualizačního nástroje a jeho ruční použití s existujícím binárním souborem AppImage. Pro AppImage zatím není k dispozici žádný mechanismus aktualizace hands-free.
Velikost aplikace
AppImage má nejmenší stopu velikosti aplikace, pravděpodobně proto, že slouží binárním souborům v komprimovaném formátu. Velikost aplikací Snap a Flatpak se velmi liší od aplikace k aplikaci a je obtížné zjistit, která poskytuje menší velikost instalace. Jen pro informaci, Inkscape AppImage měl v době psaní tohoto článku kolem 98 MB, Snap kolem 183 MB a Flatpak kolem 109 MB.
Závěr
Univerzální balíčky aplikací jsou pro vývojáře i koncové uživatele výhodnou situací. Tyto formáty obalů umožňují mnohem rychlejší dodání zabezpečených aplikací. Otevírají také dveře vývojářům, kteří se vyhýbají Linuxu kvůli různým standardům balení používaným v různých distribucích. U těchto tří formátů balení je třeba vyřešit některé problémy. Všichni jsou však v aktivním vývoji a tyto problémy budou opraveny přesčasy. Balíčky univerzální křížové distribuce jsou budoucností a jejich přijetí se zvýší. Pomalu, ale rovnoměrně se distribuce mohou v budoucnu přesunout do sestavení Snap, Flatpak nebo AppImage, s výjimkou základních knihoven a základních balíčků, které jsou nutné pro fungování OS.