Мы объяснили, что такое Flatpak, Snap иAppImage находятся в статье Как они складываются? опубликовано более 2 лет назад, и хотя с тех пор технологии значительно улучшились, я оцениваю их с точки зрения разработчика программного обеспечения.
Песочница / Заключение
Вы можете запускать AppImage без песочницы, а также использовать его с различными песочницами, например. AppArmor и Firejail.
Snap может работать без песочницы, но вы не можете использовать его с другими песочницами, так как он тесно связан с AppArmor.
Flatpak не может работать без песочницы и не может использоваться с другими песочницами, кроме Bubblewrap .
Установка/Выполнение
Можно запустить AppImage после установки исполняемого файла без root-доступа, без его распаковки и в автономной системе.
Snap должен быть установлен snapd, не может быть запущен без root-доступа до тех пор, пока он не будет установлен, и его загружаемый файл не может быть помещен рядом с exe
и dmgкоторый пользователи могут установить в автономных системах, но он может запускаться из несжатого источника.
Flatpak должен быть установлен Flatpak клиентским инструментом, не может работать без root-доступа до завершения установки, не может запускаться из несжатый источник. Кроме того, файлы flatpakref
требуют подключения к Интернету и Пакеты flatpak требуют установки среды выполнения.
AppImage может хранить и запускать приложения из нестандартных мест, таких как CD-ROM и общие сетевые ресурсы. Flatpak может сделать то же самое после некоторой настройки, а Snap в настоящее время не может.
В этом разделе AppImage занимает первое место, потому что его приложения более гибкие.
Распространение и обновления приложений
Центральным репозиторием Flatpak и Snap является FlatHub, и Snap Store соответственно. Пользователи могут загружать AppImages из AppImageHub, который является платформой каталогизации программного обеспечения, доступного в виде пакетов AppImage.
В отличие от AppImage и FlatPak, однакоSnap Store — единственный доминирующий магазин приложений с одним репозиторием на устройство. Хорошо это или плохо, решать вам.
Приложения, упакованные с использованием всех трех методов, могут иметь несколько версий, работающих параллельно, и их можно легко скопировать на другой компьютер. Однако у них есть свои уникальные реализации.
Все 3 поддерживают двоичные дельта-обновления, но только AppImage приложения могут автоматически обновляться как Snap приложения должны snapd быть установлены и Flatpak приложения должныFlatpak нужно установить.
Кратко
AppImages и Snap всегда остаются сжатыми ( Flatpak сжимается только на стороне сервера) и обычно меньше по размеру, чем приложения Flatpak . AppImage также не зависит от производителя дистрибутива и направлен на унификацию экосистем платформы Linux.
Snap принадлежит Canonical и размещает базовую привязку над базовым дистрибутивом, а Flatpak — инициатива Red Hat, которая ставит дистрибутив Yocto над базовый дистрибутив.Кроме того, в отличие от Snap, где разработчикам нужно платить Canonical, AppImage и Flatpak можно использовать бесплатно.
С моей точки зрения, AppImages — идеальный метод упаковки, поскольку он наиболее удобен как для разработчиков, так и для конечных пользователей. Однако они могут сосуществовать, особенно когда есть случаи, когда разработчики предпочитают использовать одно из другого. Расскажите нам, что вы думаете в разделе комментариев ниже.
На мои исследования для этой статьи большое влияние оказали похожие проекты и темы Reddit здесь и здесь. Не стесняйтесь проверить их для получения дополнительной информации.