Основные понятия#

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

_images/diagram.svg

Среда выполнения#

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

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

Связанные библиотеки#

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

  • библиотеки, которые недоступны в среде выполнения

  • версии библиотек, отличные от тех, что находятся в среде выполнения

  • пропатченные версии библиотек

Песочницы#

В Flatpak каждое приложение создается и запускается в изолированной среде, которая называется «песочницей». Каждая песочница содержит приложение и его среду выполнения. По умолчанию приложение может получить доступ только к содержимому своей песочницы. Доступ к пользовательским файлам, сети, графическим сокетам, подсистемам на шине и устройствам должен быть явно разрешен. Доступ к другим вещам, например, к другим процессам, намеренно невозможен.

По необходимости, некоторые ресурсы, находящиеся внутри песочницы, должны быть открыты снаружи, чтобы их могла использовать хост-система. Они известны как «экспорт», поскольку представляют собой файлы, которые экспортируются из песочницы и включают такие вещи, как файл и значок приложения .desktop.

Порталы#

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

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

Более подробную информацию о порталах можно найти в Разрешения песочницы.

Репозитории#

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

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

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