Тази статия ще изброи основните разлики между тези три формата на опаковки от гледна точка на крайните потребители. Разликите в архитектурата на опаковките и лекотата на опаковане от гледна точка на разработчиците няма да бъдат разгледани тук.
Таблицата по-долу обобщава основните разлики между файловите формати Snap, Flatpak и AppImage. Повечето от тях са разбираеми, други точки са обяснени под таблицата за сравнение.
Snap | Flatpak | AppImage | |
Превключватели за управление на разрешения за Android (GUI и CLI) | Да | Да | Не |
Поддръжка на пясъчник | Да | Да | Да |
Пясъчник Задължително | Да | Да | Не |
Поддръжка на родната тема | Да (с предупреждения) | Да (с предупреждения) | Да (с предупреждения) |
Поддръжка за пакетни библиотеки | Да | Да | Да |
Преносимост на приложението | Да (с предупреждения) | Да (с предупреждения) | Да |
Напълно съдържаща единична изпълнима поддръжка (подобно на .exe файлове в windows) | Не | Не | Да |
Онлайн магазин за приложения | Да | Да | Да |
Приставки за софтуер за настолни приложения App Store | Да | Да | Не |
Поддръжка на паралелни приложения за няколко версии | Да | Да | Да |
Автоматични актуализации | Да | Да | Да (с предупреждения) |
Поддръжка на Chrome OS (чрез контейнери на Crostini) | Да | Да | Да |
Размер на приложението | Варира, но по-високо от AppImage | Варира, но по-високо от AppImage | Най-ниска |
Брой приложения, налични в App Store | Най-висока | Най-ниски | Някъде по средата |
Контроли за разрешения за потребители
Snap предоставя както графичен интерфейс, така и интерфейси на командния ред за разрешения, контролирани от потребителя. Можете да използвате предварително инсталираното приложение „Ubuntu Software“, за да управлявате разрешенията на едно бързо приложение.
За да видите разрешенията на бързо приложение, използващо интерфейс на командния ред, изпълнете командата по-долу:
$ snap връзки хромЗаменете „хром“ с името на вашето приложение за щракване.
За да видите списък с всички инсталирани приложения за бързо инсталиране, изпълнете командата по-долу:
$ snap listЗа да дадете разрешение на камерата за хромиране, използвайте командата по-долу:
$ snap connect хром: камераЗа да отмените разрешението на камерата, изпълнете командата по-долу:
$ snap изключете хром: камераПодходящи команди за управление на разрешения могат да бъдат намерени в колона „Plug“ (показана на екранната снимка по-горе).
Flatpak също така предоставя интерфейс за предоставяне и отнемане на разрешения. Можете да използвате софтуерното приложение GNOME (изисква GNOME 3.32.x) за управление на разрешения, използвайки графичен метод. За да видите разрешенията на приложение flatpak, изпълнете командата по-долу:
$ flatpak информация - show-permissions org.kde.Платформа
Заменете „org.kde.Платформа “с името на вашето приложение Flatpak.
За да видите списък с всички приложения на flatpak, инсталирани на вашата система, изпълнете командата по-долу:
$ flatpak списъкЗа да промените разрешенията на приложение flatpak, трябва да промените стойностите на променливите, показани на екранната снимка по-горе. Например командата по-долу ще направи цялата файлова система достъпна за приложение flappak:
$ sudo flatpak заменя org.kde.Платформа --filesystem = хостAppImage не поддържа гранулирани контроли за разрешения от сега, но разработчиците намекнаха, че контролите за разрешения в стил Android могат да бъдат внедрени в бъдеще.
Пясъчник
Snap, Flatpak и AppImage поддържат изрядна среда за приложения в изолирана среда. Пясъчникът е среда (или контейнер / файлова система / архив), която е напълно изолирана и отдалечена от хост системата. Всяко взаимодействие с хост системата се извършва с помощта на ограничен API и контроли за разрешения. Някои от тези разрешения изрично изискват включване от потребителите или могат да бъдат деактивирани напълно от крайните потребители. Приложението с изолирана среда е защитено от всяко друго приложение, което има пълен достъп до хост системата. Всички приложения за Android работят в пясъчник и тези три формата на опаковки работят по подобна идея.
Поддръжка на родната тема
И трите формата на опаковките поддържат естествен външен вид за GTK и Qt приложения, макар и с някои ограничения. Например Snap и Flatpak изискват системните теми да бъдат пакетирани в съответните им формати. Ако използвате пакети от теми и икони на трети страни, може да не получите правилни икони на тема, курсор и приложение. Интеграцията се е подобрила извънредно, но те са малко по-малко в сравнение с приложенията, инсталирани от официалния мениджър на пакети на дистрибуция.
Преносимост на приложението
Приложението AppImage е единичен изпълним файл (подобно на Windows ' .exe файлове). Можете лесно да го споделяте между системи или да качвате в облак. Приложенията Snap и Flatpak могат да бъдат направени преносими, като се включи самото приложение, както и дъщерни хранилища, от които приложението зависи. Процесът обаче не е толкова лесен като AppImage и изисква използването на множество команди за постигане на едни и същи резултати.
Автоматични актуализации
Приложенията Snap и Flatpak се инсталират от централизирани хранилища на приложения и приложенията могат да се актуализират автоматично без намеса на потребителя. В AppImage липсва надежден механизъм за автоматично актуализиране. Потребителите трябва ръчно да изтеглят нов двоичен файл на AppImage и да заменят съществуващия, за да инсталират актуализации. Поддръжниците на приложения AppImage понякога включват собствен механизъм за актуализиране, който периодично проверява наличността на актуализации на техните сървъри или изисква намеса на потребителя. Наскоро разработчиците на AppImage предоставиха инструмент за актуализиране на съществуващите двоични файлове чрез предоставяне на делта актуализации. Все пак изисква изтегляне на инструмента за актуализация и ръчно използване с съществуващ двоичен файл на AppImage. За AppImage все още няма механизъм за актуализация без ръце.
Размер на приложението
AppImage има отпечатък с най-нисък размер на приложението, най-вероятно защото обслужва двоични файлове в компресиран формат. Размерите на приложенията Snap и Flatpak варират значително в зависимост от приложението и е трудно да се установи кое осигурява по-нисък размер на инсталацията. Само за справка, Inkscape AppImage по време на писането на тази статия беше около 98 MB, Snap около 183 MB и Flatpak около 109 MB.
Заключение
Универсалните пакети за приложения са печеливша ситуация както за разработчиците, така и за крайните потребители. Тези формати за опаковане позволяват много по-бърза доставка на сигурни приложения. Те също така отварят врати за разработчици, които се отклоняват от Linux заради различни стандарти за опаковане, използвани в различни дистрибуции. Има някои проблеми, които трябва да се изгладят в тези три формата на опаковки. Всички те обаче са в процес на активно развитие и тези проблеми ще бъдат отстранени извънредно. Универсалните пакети за кръстосано разпространение са бъдещето и тяхното приемане ще се увеличи. Бавно, но стабилно, дистрибуциите могат да се преместят в Snap, Flatpak или AppImage в бъдеще, с изключение на основните библиотеки и основни пакети, необходими за работата на операционната система.