Опаковка

Сравнение Snap срещу Flatpak срещу AppImage

Сравнение Snap срещу Flatpak срещу AppImage
Новите формати на опаковки като Snap, Flatpak и AppImage предоставят агностични пакети за разпространение, които работят в повечето дистрибуции на Linux. Това решава проблеми с опаковката, пред които са изправени разработчиците на приложения, които искат да разпространяват своите приложения в множество дистрибуции на Linux. Сега те могат да се съсредоточат върху една конструкция, която работи навсякъде, вместо да преминава през различни стандарти за опаковане.

Тази статия ще изброи основните разлики между тези три формата на опаковки от гледна точка на крайните потребители. Разликите в архитектурата на опаковките и лекотата на опаковане от гледна точка на разработчиците няма да бъдат разгледани тук.

Таблицата по-долу обобщава основните разлики между файловите формати 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 в бъдеще, с изключение на основните библиотеки и основни пакети, необходими за работата на операционната система.

Урок за OpenTTD
OpenTTD е една от най-популярните бизнес симулационни игри там. В тази игра трябва да създадете прекрасен транспортен бизнес. Въпреки това, ще започне...
SuperTuxKart за Linux
SuperTuxKart е страхотно заглавие, създадено да ви предостави безплатно изживяването на Mario Kart във вашата Linux система. Играта е доста предизвика...
Урок за битка за Уеснот
Битката за Уеснот е една от най-популярните стратегически игри с отворен код, които можете да играете по това време. Тази игра не само се разработва о...