Найти тему
Plectrom

Как работают приложения в Linux?

Оглавление

Установка и хранение приложений в Linux, устроены несколько иначе, чем в Windows. Здесь нет какого-то реестра, куда заносятся все установленные компоненты.

По сути, любой дистрибутив Linux — это просто большой набор пакетов, а программы и приложения представлены в виде файлов, лежащих в системных каталогах.

Для их установки используются специальные менеджеры, которые можно разделить на два типа: традиционные и контейнерные.

Контейнерные

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

Snap очень похож на AppImage, только программа представляет собой не файл, а архив в формате .squashfs. При запуске приложений в этом формате архив временно монтируется и запускается сама программа. (Операционная система, как бы заглядывает внутрь snap-архива, лежащего в каталоге /var/lib/snapd/snaps).

Flatpak — самые странные контейнеры в мире Linux. Они разделены на две части. Первая — с самой программой, хранится в виде файла в каталоге /var/lib/flatpak/app, а вторая, с конфигурацией и журналами, лежит в каталоге ~/.var/app.

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

Традиционные

Такие менеджеры пакетов как APT, DNF или Pacman хранят приложения в виде файлов, которые могут лежать в различных каталогах внутри операционной системы.

Исполняемая часть будет лежать в каталоге /usr, конфигурация в /etc, а базы данных в /var.

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

Но у него есть свои плюсы, поскольку:

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