Самодостаточные пакеты получают всё большее внимание с появлением дистрибутивов, отходящих от традиционных пакетов к системам в основе которых лежат контейнерные технологии
Пожалуй, основными форматами контейнеров остаются только 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 пакетов
Примечание:
Некоторые из пакетов отсутствуют на сайте AppImagHub. Наример, IDE Theia Blueprint на официальном сайте https://theia-ide.org/docs/blueprint_download/ запакована в AppImage, при этом не добавлена на сайт AppImagHub
Ввиду большого количества пользовательских репозиториев таких как, Beta, Liri, Elementary не представляется возможным узнать точное количество Flatpak-пакетов
Некоторые пакеты snap, отсутствующие в репозитории Snapcraft не учитываются. Например: серверный медиаплеер Diffuse: https://github.com/icidasset/diffuse/releases/
Предположительно, статистика Snap охватывает каналы -edge, -beta, -candidate и другие. К примеру, у Nextcloud https://snapcraft.io/nextcloud таких каналов 22
Скорость использования
https://cstan.io/?p=13084&lang=en
Дистрибутив: Ubuntu 21.10 Пакет: Firefox 94
| Нативный пакет | AppImage | Flatpak | Snap | |
|---|---|---|---|---|
| Холодный старт | 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
| Нативный пакет | Flatpak | Snap | |
|---|---|---|---|
| Холодный старт | 5 секунд | 6 секунд | 18 секунд |
| Горячий старт | 2 секунды | 3 секунды | 3 секунды |