В комментариях под заметкой о том, что AppImage вытеснит со временем SNAP и Flatpak многие писали про такой недостаток, как невозможность нормального обновления приложения, которое поставляется в формате AppImage.
Мол надо отслеживать выход новой версии, ручками все скачивать и прочее, прочее, прочее. Но, как показывает мой опыт, никаких неудоств нет, нужно лишь, чтобы разработчики позволили своему приложению в этом формате нормально получать обновления.
Обновление здорового разработчика программ
Расскажу вам небольшую историю, которая касается обновления приложения для работы с базами данных Navicat. Оно находится в той самой папке Apps с AppImage-приложениями, которую я уже несколько раз показывал в заметках.
У меня скачана триальная версия Navicat, но раз она поставляется в AppImage-формате, то те 14 дней, которые даются на использование программы у меня растянулись примерно в месяц. Так как периодически я меняю дистрибутивы, программа думает, что это новая итерация ее использования и отсчет начинается с начала.
Открываю тут ее значит по профессиональной надобности и она говорит, что есть обновление и предлагает его скачать. Естественно, соглашаюсь и жму кнопку Да. Открывается прогресс-бар, там быстро пробегают цифры скачивания, потом окошко завершения и кнопка на перезапуск приложения.
Насколько я смог понять механизм обновления, то это какой-то скрипт, зашитый внутрь AppImage, который проверяет, есть ли новая версия и если да, то скачивает обновленный файл, подменяя им ранее имеющийся.
Казалось бы неудобством будет то, что если пользователь желает иметь несколько версий одной и той же программы, то скрипт такого не позволит сделать и при каждом запуске будет проверять наличие обновлений и надоедать всплывающими окошками. Но разработчики позаботились и об этом, добавив пункт в меню настроек, который позволяет отключить проверку обновлений при запуске программы.
Получается, что приложения AppImage могут обновляться без дополнительных действий со стороны пользователя, причем механизм апдейта не отличается от того, что практикуется практически в любой программе. При этом, способ понятен тем, кто долго пользовался приложениями на Windows и не хочет вводить какие-либо команды на обновление системы и софта в терминале.
Проблемы не в формате, проблемы в разработчиках!
Пример Navicat показывает здоровое отношение разработчиков к пользователям и демонстрирует то, что нормальные обновления не являются болячкой формата AppImage. Это проблема лени разработчиков и их нежелания делать шаг в сторону пользователей.
Когда в комментариях про Linux заходит речь про драйвера и версии ПО и игр для этих дистрибутивов, то озвучиваемая мной позиция всегда конкретна: отсутствие чего-либо под Linux это проблема разработчиков, а не ядра и дистрибутивов на нем основанных! Точно также могу сказать и про AppImage: отсутствие возможности нормального обновления это не проблема форматов, а недоработка разработчика.
Подведем итог
Уже который месяц пользуюсь программами в формате AppImage и убеждаюсь, что именно за ними будущее в развитии ПО для Linux и наступления хоть какой-то унификации между различными дистрибутивами. Возможно, это будет не сам AppImage, а какая-то его итерация, но суть остается прежней: этот формат вытеснет со временем SNAP и Flatpak.
Все эти крики в комментариях по поводу необходимости сборки пакетов из исходного кода думаю полностью бессмысленны, так как если есть потребность в массовом распространении Linux-дистрибутивов, то необходим единый, универсальный формат приложений. Пользователь никогда не будет тратить свое время и нервы на попытки сбора чего-либо через терминал, это удел тех, кто получает от этого удовольствие и считает данный способ получения софта единственно верным. Но это способ устаревший и думаю, что в скором времени будет окончательно вытеснен чем-то единым.