Найти тему

Будущее портативных приложений для Linux: почему формат AppImage со временем вытеснет SNAP и Flatpak?

Оглавление

В многообразии Linux-дистрибутивов, как мы знаем, черт ногу сломит и это является не только очевидным преимуществом Linux (есть из чего выбрать и под любые потребности), но и явным недостатком. Особенно когда речь заходит про установку различных пакетов: тут у вас DEB, там RPM, а тут вообще пакеты Pacman, распространяемые как в виде исходных файлов, так и их архивированных версий (pacman и zst).

Решить проблемы большого количества вариантов установочных пакетов должны были портативные форматы, такие как SNAP, Flatpak и AppImage. Краткую историю их появления и суть я описывал на канале, найти статью про это вы можете по ссылке ниже.

Как я уже говорил ранее в одном из постов, на мой взгляд, со временем Linux-дистрибутивы придут к единому, универсальному формату приложений, как это, например, произошло в Windows или macOS, где основными форматами стали EXE и DMG. И я считаю, что этим универсальным форматом станет именно AppImage, а никак не SNAP и не Flatpak. И вот почему...

Причина популярности SNAP и Flatpak

Секретом популярности этих установочных форматов является то, что за их развитием стоят крупные корпорации: как известно формат SNAP активно разрабатывает и продвигает Canonical, тогда как Red Hat хорошо так вкладывается во Flatpak. Но это только кажется явным преимуществом, тогда как если посмотреть в долгосрочной перспективе, то все окажется не таким радужным.

Хорошим примером того, что может произойти уже можно считать SNAP. После того, как Canonical в одностороннем порядке решила перевести Ubuntu на SNAP не все пользователи с этим решением оказались согласны и выразили свое недовольство путем отказа от использования Ubuntu. Примерно по тому же пути идет и Fedora, разработчики которой с версии 38 добавили полную поддержку Flatpak в менеджер приложений. Пока что, Fedora предоставляет пользователю выбор того, откуда установить приложение, но мне почему-то кажется, что со временем Red Hat ступит на те же грабли, что и Canonical и оставит единственным доступным форматом только Flatpak (например, в версии так 40 или 41).

У обоих этих форматов есть недостатки, которые при активном и одностороннем внедрении в систему вызовут у пользователей отторжение и отказ от SNAP и Flatpak в пользу AppImage.

Что же такого хорошего в AppImage?

В первую очередь, стоит понимать, что только AppImage является по-настоящему портативным форматом приложений в среде Linux-дистрибутивов. Пользователь не сможет просто так взять SNAP или Flatpak-пакет и перенести его (на том же портативном жестком диске) из одного дистрибутива в другой.

Чтобы в дистрибутиве появилась поддержка SNAP или Flatpak необходимо произвести дополнительные действия по включению поддержки этих форматов. В общем случае, исключение составляют Ubuntu и Fedora, где эта поддержка включена и настроена сразу после установки.

Представим, что у нас есть три дистрибутива: Manjaro KDE, Linux Mint Cinnamon и Fedora 38. Формат Flatpak будет полноценно работать только во втором и третьем дистрибутиве, формат SNAP недоступен по-умолчанию ни в каком их них. Тогда как формат AppImage с равной степенью можно будет запустить на каждом из них, не прибегая при этом к каким-либо дополнительным действиям. Возьмем, к примеру, графический редактор GIMP. Он доступен в формате AppImage, скачать который можно с официальной GitHub-страницы.

Страница с AppImage-форматом GIMP в GitHub
Страница с AppImage-форматом GIMP в GitHub

После скачивания достаточно разместить файл на любом портативном носителе и просто-напросто переключать его с одного устройства на другое.

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

Во-вторых, при запуске AppImage-файлов не требуется никакого дополнительного места для установки программы. SNAP и Flatpak в процессе инсталляции скачивают какие-то дополнительные файлы, необходимые для запуска себя в дистрибутиве, причем этим файлы вместе с самой программой занимают место на жестком диске.

Программа Appimage занимает столько места, сколько занимает скачанный файл. Например, касаемо GIMP, про который говорилось выше, это 160 мегабайт. Причем все необходимые пользователю программы можно хранить не на жестком диске устройства, а в облаке, на портативном HDD или SSD, USB-флэшке. Единственное, что остается после запуска AppImage - ярлык, который будет находиться по пути $HOME/.local/share/applications.

В-третьих, удаление AppImage-программы не потребует от пользователя каких-либо дополнительных действий, так как достаточно будет удалить только сам файл из той папки, где хранятся все AppImage-программы.

Опять-таки, может понадобиться только удаление ярлыка, но не каждый AppImage этот ярлык размещает и о его наличии в системе можно позаботиться сразу после первого запуска файла.

Подведем итоги

Я думаю, что со временем попытки Canonical и Red Hat навязать пользователю SNAP и Flatpak приведут к тому, что линуксоиды начнут массово отказываться от этих форматов и переходить на AppImage, как действительно настоящий портативный формат приложений, который не требует от юзера лишних телодвижений в плане установки или запуска.

В результате, возможно появление популярных версий Linux-дистрибутивов, где вместо привычного пакетного менеджера (APT, DPKG, DNF, YUM, Pacman) будет только базовая система и необходимые для ее работы пакеты, а весь остальной софт будет предложен пользователю в виде AppImage файлов, которые легко переносить между различными устройствами. Я знаю, что уже предпринимаются попытки разработки таких дистрибутивов, но думаю, что в ближайшее время подобных разработок будет становиться все больше и больше. Унификация Linux-дистрибутивов, как мне кажется, неизбежна и начнется она именно с установочных пакетов, с программного обеспечения.

Как вы относитесь к формату AppImage? Или вы предпочитаете его конкурентов SNAP и Flatpak? А может ничего из этого вас не устраивает и вы пользуетесь пакетами в привычном для вашего дистрибутива формате?