Каковы различия между оснастками, appimage, flatpak и другими?

105

В последнее время я получал этот вопрос от студентов, и хотя у меня есть много информации, которую я могу предложить, я не нашел источника, на который я мог бы указать людям, где они могли бы прочитать обновленный ответ (я обнаружил много дезинформации и устаревшей информации ). Итак, некоторые вопросы, которые у меня возникают по поводу форматов упаковки, таких как snap, appimage, flatpak и другие в этой эволюции универсальных упаковочных систем:

  • Кто создал формат пакета?
  • Какие функции он предлагает?
  • Какие особенности являются уникальными для него? (Что у других еще нет)
  • Кто это поддерживает?
  • Какие дистрибутивы используют это?
  • На чем сфокусирован пакет? (Для настольных компьютеров, облаков, мобильных устройств и т. Д.)
  • Какие из них более активно развиваются?
Луис Альварадо
источник

Ответы:

68

Вот длинное табличное сравнение функций AppImage против Snap и Flatpak. Это из AppImage Wiki на GitHub :

Сравнение AppImage и Snap против Flatpack

Курт Пфайфл
источник
43
Я думаю, что стоит отметить, что эта диаграмма построена с точки зрения AppImage. Это означает, что набор функций по умолчанию - это набор функций AppImage, а остальные сравниваются с его функциями. Это дает необъективное преимущество AppImage. Это также несколько устарело. Например, Snap добавил поддержку тем этой осенью.
Дан
1
@Dan: Если вы знаете, что Snap добавил их поддержку, почему бы вам просто не отредактировать диаграмму? Кроме того, если вы знаете о других функциях, которые есть в Snap и / или Flatpak: не стесняйтесь вносить поправки в диаграмму с помощью соответствующих элементов в вики AppImage ...
Курт Пфайфл
11
Я не уверен, как вы можете сказать, что @Kurt. Взгляните на раздел «Цели», в качестве примера. Он показывает цели AppImage исключительно, как будто ни у одного из других проектов нет целей. Как будто только цели, которые имеет AppImage.
Дан
5
Я понял вашу точку зрения - я мог бы редактировать вики. Тем не менее, ваш ответ - гигантский образ, который, по-видимому, навсегда останется без изменений, даже если вики изменится. Я думаю, что предвзятость стоит упомянуть в контексте вашего ответа будущим читателям Ubuntu.
Дан
2
@Dan: я отредактировал ответ 4 июля, чтобы вставить обновленную версию скриншота с веб-сайта (именно для того, чтобы включить некоторые изменения, которые произошли с вики). В чем проблема для вас при редактировании исходного вики, создании нового снимка экрана и предложении изменить этот ответ с новым снимком экрана?
Курт Пфайфл
51

Снимки были созданы Canonical для Ubuntu. Основными преимуществами оснастки являются:

  • Независимость от зависимостей - все библиотеки и зависимости включены в пакет. Это также позволяет иметь больше версий одной и той же программы.
  • Песочница - привязки используют модифицированный AppArmor для песочницы приложений
  • Дельта-обновления - снимки также должны разрешать дельта-обновления

Основным недостатком моментальных снимков является то, что программное обеспечение может использовать только библиотеки, включенные в его пакет. Это потенциальная угроза безопасности, так как автору пакета необходимо постоянно обновлять и обновлять все библиотеки.

Snaps в настоящее время могут работать в Ubuntu, Arch Linux, Fedora, Linux Mint, CentOS и Gentoo. Они также используются в Ubuntu Touch. Они предназначены для настольных компьютеров, серверов, телефонов, IoT и маршрутизаторов.

Flatpak имеет те же преимущества, что и оснастка. Тем не менее, он использует пространства имен вместо AppArmour для песочницы. Основное отличие состоит в том, что Flatpaks может использовать библиотеки, включенные в пакет, и общие библиотеки из другого Flatpak.

Разработчиком Flatpak является сотрудник Red Hat Александр Ларссон. Программное обеспечение Flatpak в настоящее время доступно в Arch Linux, Debian, Fedora, Mageia, Solus и Ubuntu. Он ориентирован только на рабочие столы.

AppImages разработан Саймоном Питером. Как и в Snaps или Flatpak, пакет включает в себя все библиотеки, необходимые для запуска программы. Программы AppImage не находятся в «песочнице» и для их запуска не требуются права root. Согласно веб-сайту проекта, AppImages должен работать на Arch Linux, Centos, Debian, Fedora, OpenSUSE, Red Hat Linux и Ubuntu.

магма
источник
3
Solus объявил о поддержке flatpak в январе 2017 года
Anthon
8
Все они должны были основываться только на внешности. Вместо того, чтобы заново изобретать ту же идеологию и вводить фрагментацию и путаницу. Также обратите внимание, что, поскольку эти переносимые пакеты имеют все библиотеки, они будут значительно тяжелее по размеру по сравнению с приложением, использующим разделяемые библиотеки, установленные через apt или .deb. Если вы должны знать, что является более популярным, то flatpak в настоящее время бьется на одном уровне.
Ответ Искатель
Я подозреваю, что в связи с атакой «Спектр» в дикой природе интерес к разделяемым библиотекам будет меньше из соображений безопасности. :-)
Крис
4
@answerSeeker: ваш комментарий о том, что переносимые пакеты «значительно тяжелее по размеру по сравнению с приложением, использующим разделяемые библиотеки, установленные через apt или .deb» , не обязательно подтверждается фактами из реальной жизни. AppImages и Snaps сжимаются в изображения SquashFS (не относится к Flatpak). Они никогда не извлекаются на диск, даже во время выполнения. AppImages при запуске самостоятельно монтирует себя на временно созданную точку монтирования /tmp/.mount_<random-chars>и запускается оттуда - все еще сжато! Посмотрите цифры для примера LibreOffice на скриншоте моего ответа ниже ...
Курт Пфайфл
1
@PabloBianchi: более новые AppImages (из более поздней разновидности типа 2 ) могут иметь встроенный механизм обновления. Это загружает двоичный разностный дифференциал из исходного местоположения AppImage, сохраняя размер и время загрузки, как только новая версия становится доступной, и после того, как пользователь указал, что он / она хотел. Инструменты appimageupdatetool(CLI) и AppImageUpdate-Qt(GUI) помогают в этом.
Курт Пфайфл