Введение
Файл формата исполняемых файлов Linux AppImage (ранее известный как klik и PortableLinuxApps) — это формат с открытым исходным кодом для распространения портативного программного обеспечения на Linux. Он призван обеспечить возможность установки бинарного программного обеспечения независимо от конкретных дистрибутивов Linux, концепция, часто называемая упаковкой из исходного репозитория. В результате один и тот же AppImage можно установить и запустить в Ubuntu, Arch Linux и Red Hat Enterprise Linux без необходимости использования различных файлов. Он разработан как самодостаточный, не требующий прав root и независимый от базового дистрибутива Linux. Впервые выпущенный в 2004 году под названием klik, он постоянно развивался, затем был переименован в 2011 году в PortableLinuxApps, а позднее, в 2013 году, в AppImage. Версия 2 была выпущена в 2016 году.
AppImage (formerly known as klik and PortableLinuxApps) is an open source format for distributing portable software on Linux. It aims to allow the installation of binary software independently of specific Linux distributions, a concept often referred to as upstream packaging. As a result, one AppImage can be installed and run across Ubuntu, Arch Linux, and Red Hat Enterprise Linux without needing to use different files. It aims to be a format that is self contained, rootless, and independent of the underlying Linux distribution. Released first in 2004 under the name klik, it was continuously developed, then renamed in 2011 to PortableLinuxApps and later in 2013 to AppImage. Version 2 was released in 2016.
История
Предшественник AppImage, klik, был разработан в 2004 году Саймоном Питером. Программное обеспечение клиентской части лицензировано по GNU GPL. Klik интегрировался с веб-браузерами на компьютере пользователя. Пользователи загружали и устанавливали программное обеспечение, вводя URL, начинающийся с klik://. Это загружало файл "рецепт" klik, который использовался для генерации файла cmg. В качестве основных компонентов в процесс генерации рецепта обычно подавались предварительно собранные deb-пакеты из репозиториев Debian Stable. Таким образом, один рецепт можно было использовать для распространения пакетов на широкий спектр платформ. С klik одновременно можно было запустить только восемь программ из-за ограничений монтирования сжатых образов с ядром Linux, если только не использовался FUSE. Файл перемонтировался каждый раз при запуске программы, что означало, что пользователь мог полностью удалить программу, просто удалив файл. Следующая версия, klik2, находилась в разработке и должна была нативно включить модуль ядра FUSE, но она так и не вышла за пределы стадии бета-тестирования. Около 2011 года проект klik был приостановлен, а веб-сайт перестал быть доступным. Примерно в то же время Саймон Питер начал проект-преемник под названием PortableLinuxApps с аналогичными целями. Технология была принята, например, репозиторием "portablelinuxgames.org", который предоставлял сотни преимущественно видеоигр с открытым исходным кодом. Около 2013 года программное обеспечение было переименовано из PortableLinuxApps в AppImage, а лицензия была изменена на лицензию MIT. AppImage – это формат, а AppImageKit – конкретная реализация с открытым исходным кодом. Разработка ведется в репозитории GitHub. В 2016 году был разработан проект версии 2 спецификации AppImage. Версия 2 не имеет ограничений по типу файловой системы (в реализации используется SquashFS). Она устраняет фиксированное смещение, определяющее начало образа файловой системы в файле, и позволяет встраивать цифровые подписи непосредственно в AppImage, а не в отдельный файл.
Дизайн
AppImage стремится быть системой развертывания приложений для Linux со следующими задачами: простота, двоичная совместимость, переносимость, независимость от дистрибутива, отсутствие необходимости установки, отсутствие прав root и сохранение исходной операционной системы без изменений. Благодаря этому AppImage не устанавливает программное обеспечение, размещая исполняемые файлы в различных директориях. Вместо этого файл сам по себе является образом файловой системы. При запуске файл монтируется с использованием FUSE. AppImage разработан, чтобы быть проще в использовании, чем традиционные форматы установки, такие как Deb и RPM, поскольку не требует изменения операционной системы или пользовательской среды. Каждый файл самодостаточен; он включает в себя все библиотеки, от которых зависит приложение, и которые отсутствуют в целевой системе. AppImage версии 1.0 представляет собой файл ISO 9660 Rock Ridge (который может быть опционально сжат с помощью zisofs), содержащий минимальный AppDir и среду выполнения. AppImage позволяет встраивать цифровые подписи, которые необходимо проверять отдельно. Формат не требует обязательной валидации подписей, а лишь допускает их включение. AppImage не обеспечивает принудительную изоляцию (sandboxing), но отдельные приложения могут использовать её.
Прием и использование
В 2007 году Klik послужил вдохновением для проекта glick Александра Ларссона, предшественника Flatpak. В 2015 году Линус Торвальдс, создатель ядра Linux, сказал: «Это просто здорово. Я наконец-то попробовал версию Subsurface в формате "AppImage", и она действительно "просто работает"». Марк Шаттлворт отметил, что «AppImage обеспечивают довольно удобный опыт, и я восхищаюсь проделанной работой».