Posted on ::

Самодостаточные пакеты получают всё большее внимание с появлением дистрибутивов, отходящих от традиционных пакетов к системам в основе которых лежат контейнерные технологии

Пожалуй, основными форматами контейнеров остаются только 3: Appimage, Flatpak и Snap.

Первым появившимся был Appimage, прообраз которой был создан командой Саймона Питера в 2004 году.

В ISO-образ с файловой системой SquashFS "зашиты" все необходимые для работы библиотеки и сам бинарный файл. Это плохо сказывается на отзывчивости, однако запуск приложения происходит практически без дополнительных манипуляций. Отсутствуют источники распространения — нет единого репозитория, минимальная интеграция в рабочий стол (например, нет ярлыка рабочего стола), отсутствует механизм обновлений

На основе концепции AppImage Александром Ларссоном был создан Flatpak. Такая концепция предполагала меньшее использование дискового пространства засчёт использования "сред выполнения" — базовых библиотек, необходимых для запуска всем приложениям

Вместо образов SquashFS Flatpak использует git-подобную файловую систему OSTree, что позволяет более гибко управлять версиями. У Flathub есть свой центральный репозиторий, также есть возможность создавать дополнительные репозитории, как это, например, делают разработчики дистрибутива elementary.

Snap — технология, придуманная в недрах компании Canonical, разработчика популярного дистрибутива Ubuntu. Также, как и AppImage, snap-пакет является образом диска с файловой системой SquashFS. Однако, за появление в системе такого пакета отвечает демон snapd тесно связанный с системой инициализации systemD и модулем ядра AppArmor

Статистика распространения

Snap: ~6600 пакетов AppImage: ~1300 пакетов FlatHub: ~1400 пакетов

Примечание:

  1. Некоторые из пакетов отсутствуют на сайте AppImagHub. Наример, IDE Theia Blueprint на официальном сайте https://theia-ide.org/docs/blueprint_download/ запакована в AppImage, при этом не добавлена на сайт AppImagHub

  2. Ввиду большого количества пользовательских репозиториев таких как, Beta, Liri, Elementary не представляется возможным узнать точное количество Flatpak-пакетов

  3. Некоторые пакеты snap, отсутствующие в репозитории Snapcraft не учитываются. Например: серверный медиаплеер Diffuse: https://github.com/icidasset/diffuse/releases/

  4. Предположительно, статистика Snap охватывает каналы -edge, -beta, -candidate и другие. К примеру, у Nextcloud https://snapcraft.io/nextcloud таких каналов 22

Скорость использования

https://cstan.io/?p=13084&lang=en

Дистрибутив: Ubuntu 21.10 Пакет: Firefox 94

Нативный пакетAppImageFlatpakSnap
Холодный старт8 секунд10,5 секунд7,5 секунд21 секунда
Горячий старт2,9 секунд 207 МБ памяти4,9 секунд, 249 МБ памяти2,9 секунд, 233 МБ памяти8,5 секунд, 261 МБ памяти

https://distrowatch.com/weekly.php?issue=20220131#qa

Дистрибутив: Manjaro Пакет: Firefox

Нативный пакетFlatpakSnap
Холодный старт5 секунд6 секунд18 секунд
Горячий старт2 секунды3 секунды3 секунды