Найти в Дзене

Установка приложений в Linux независимо от дистрибутива

В одной из предыдущих заметок мы коснулись форматов установочных файлов для дистрибутивов Linux. Вспомним, что можно выделить три таких формата: архивы, deb и rpm-пакеты. Они, напомню, подходят под три больших семейства дистрибутивов (Slackware, Red Hat, Debian). Но может есть какой-то универсальный формат установочных файлов, которые подойдут под практически любой дистрибутив? Устанавливаемые и портативные приложения Первый тип приложений (программ) используется чаще всего и подразумевает, что вы каким-либо доступным способом установили программу в систему, она прописалась по определенным путям и хранится в конкретном каталоге. При особом желании вы можете перенести папку с установленной программой на другой компьютер, но гарантию того, что программа нормально там заработает вам никто не даст. Для таких ситуаций и нужны портативные (portable) версии приложений. Такая версия программы просто скачивается либо архивом, либо исполняемым файлом и запускается в системе независимо от своего
Оглавление

В одной из предыдущих заметок мы коснулись форматов установочных файлов для дистрибутивов Linux. Вспомним, что можно выделить три таких формата: архивы, deb и rpm-пакеты. Они, напомню, подходят под три больших семейства дистрибутивов (Slackware, Red Hat, Debian). Но может есть какой-то универсальный формат установочных файлов, которые подойдут под практически любой дистрибутив?

Устанавливаемые и портативные приложения

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

Для таких ситуаций и нужны портативные (portable) версии приложений. Такая версия программы просто скачивается либо архивом, либо исполняемым файлом и запускается в системе независимо от своего местоположения. При работе программа не создает связей с системой и файл portable-версии легко можно перенести на другой ПК, приложение запустится без особых проблем. Часто люди, тесно связанные с миром IT (программисты, инженеры и т.п.) имеют под рукой флэшку с набором портативных версий нужных программ.

Для Windows и MacOS формат устанавливаемых и портативных версий приложений не меняется. Это чаще всего exe или dmg. А что же в мире Linux-дистрибутивов?

Проблема многообразия

В одном из первых постов упоминалось, что количество дистрибутивов на ядре Linux исчисляется тысячами. Там есть как те системы, которые основаны на перечисленной в начале поста «большой тройке» дистрибутивов, так и те, которые разработчики делают полностью в отрыве от существующих вариантов. Получается, что проблема единого формата приложений для Linux стоит острее, чем у той же Windows, где exe-файл с равной степенью запуститься на большей части версий ОС. Но проблема многообразия решается силами сообщества (вы же помните, что дистрибутивы на ядре Linux относятся к открытому исходному коду, в разработке может принимать участие любой желающий). Поэтому со временем появились форматы приложений, которые работают на любой версии дистрибутива и не требуют какой-то конкретной версии ОС. Такими форматами стали Flatpak, AppImage и Snappy.

AppImage

Изначально проект, в рамках которого появился AppImage назывался Klik. Первая версия была представлена в 2004 году человеком по имени Симон Питер. Для простоты можно представить, что AppImage является одним сжатым файлом, внутри которого запускается нужная программа и выполняются необходимые процедуры. При этом AppImage-приложение не размещает файлы приложения по системным папкам и является полностью самодостаточным (включает все необходимые библиотеки, инструкции и пр.).

Суть работы с AppImage-приложением проста донельзя. Нужно скачать один файл (например, браузер Chrome), сделать его исполняемым и дважды кликнуть мышкой.

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

Flatpak

В 2007 году проект AppImage (тогда еще имевший название Klik) мотивировал Алекса Ларсона начать разработку собственного варианта исполняемых портативных версий программ в Linux. Так на свет появился Glick, который позже будет переименован во Flatpak. Любой файл формата Flatpak является замкнутым контейнером, внутри которого существует исполняемая среда для запуска программы. Получается, что любой запуск Flatpak-приложения никак не влияет на операционную систему и если случится какая ошибка в программе, то на стабильность ОС это никак не повлияет. В отличие от AppImage Flatpak-программу не получится скинуть на флэшку и носить с собой. Flatpak берет тем, что он запускается на любом дистрибутиве Linux, без необходимости заморачиваться с зависимостями. Существующие версии Flatpak расположены в так называемом хабе, откуда их можно скачать. Также существует команды на установку приложения прямо из консоли. Современные Linux-дистрибутивы (например, Fedora) сразу после установки имеют поддержку Flatpak и позволяют установить все нужные приложения в один клик.

Не во всех дистрибутивах Flatpak может быть установлен из коробки. В таком случае нужно будет вначале установить инструментарий для взаимодействия с Flatpak-приложениям и Flatpak Hub’ом.

Snappy

Систему управления и развертывания приложении Snappy начала разрабатывать компания Canonical, которая известна тем, что контролирует разработку дистрибутива Ubuntu. Изначально Snappy предназначалась для мобильной версии Ubuntu, но впоследствии перешла в мир десктопных версий. Файлы, разработанные в Snappy имеют формат snap и являются сжатым файлом внутри которого существует собственная файловая система и среда для запуска приложения.

Также как и Flatpak snap-приложения не зависят от установленной ОС и могут быть с легкостью установлены на любой дистрибутив Linux. Поскольку snap-формат разрабатывается Canonical, то ожидаемо, что главной ОС для этого формата будет Ubuntu. И действительно, с версии 22.04 браузер Firefox (который по-умолчанию устанавливается в практический каждый дистрибутив) поставляется в формате snap. Вполне возможно, что в скором времени Ubuntu полностью переедет на snap-пакеты в качестве основы системы. Существующие версии приложений в формате snap размещены в Snap Store, откуда их можно скачать и установить.

Не во всех дистрибутивах Snap может быть установлен из коробки. В таком случае нужно будет вначале установить инструментарий для взаимодействия с snap-приложениям и Snap Store.

Личный опыт

Я предпочитаю взаимодействовать с приложениями AppImage и Flatpak. Они, как мне кажется, устанавливаются, запускаются и работают быстрее. Snap-программы, на мой взгляд, агрессивно продвигаются Canonical, потому такая настойчивость в плане внедрения чего-то отпугивает пользователей. Например, решение разработчиков Ubuntu перенести основной браузер в формат snap вызвал неоднозначную реакцию сообщества. При этом на первых порах после выхода Ubuntu 22.04 оказалось, что скорость работы Firefox-snap в несколько раз ниже, чем иных вариантов этой программы (на данный момент, низкую скорость работы убрали фиксами, стабильность работы браузера была повышена). Лучше самим попробовать все варианты портативных приложений, про которые рассказал выше, и самим выбрать то, что лучше подходит под имеющиеся задачи.

Если понравился пост, то поддержите его лайком и подпиской, задайте интересующие вопросы в комментариях. Чем больше активностей, тем лучше!

Просто Кодь - это сообщество системных администраторов, разработчиков и пользователей Linux. Мы ориентируемся, в первую очередь, на новичков. Главная задача сообщества - объединить все вышеперечисленные категории пользователей для обмена опытом и совместного решения возникающих вопросов.