Самодостаточные пакеты получают всё большее внимание с появлением дистрибутивов, отходящих от традиционных пакетов к системам в основе которых лежат контейнерные технологии
Пожалуй, основными форматами контейнеров остаются только 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
Холодный старт: Нативный пакет: 8 секунд AppImage: 10,5 секунд Flatpak: 7,5 секунд Snap: 21 секунда
Горячий старт: Нативный пакет: 2,9 секунд, 207 МБ RAM AppImage: 4,9 секунд, 249 МБ RAM Flatpak: 2,9 секунд, 233 МБ RAM Snap: 8,5 секунд, 261 МБ RAM
https://distrowatch.com/weekly.php?issue=20220131#qa
Дистрибутив: Manjaro Пакет: Firefox
Холодный старт: Нативный пакет: 5 секунд Flatpak: 6 секунд Snap: 18 секунд
Горячий старт: Нативный пакет: 2 секунды Flatpak: 3 секунды Snap: 3 секунды
https://snapcraft.io/blog/snap-speed-improvements-with-new-compression-algorithm
Тестовая машина 1
Kubuntu 18.04 Kernel 4.15.0-118-generic Snapd 2.46.1+18.04 Пакет: Chromium Stable 85.X Сжатие snap-пакета: LZO
Холодный старт: Нативный пакет: 1,7 секунд Snap: 3,1 секунд
Горячий старт: Нативный пакет: 0,6 секунда Snap: 0,6 секунд
Тестовая машина 2
Fedora 32 Workstation. Kernel 5.8.13-200.fc32 Snapd version 2.45.3.1-1.fc32 Пакет: Chromium Stable Сжатие snap-пакета: LZO
Холодный старт: Нативный пакет: 15,3 секунд Snap: 10,1 секунд
Горячий старт: Нативный пакет: 1,3 секунды Snap: 1,3 секунды