Flatpak¶
Flatpak — это кроссплатформенная система управления пакетами (пакетный менеджер) и среда выполнения приложений, предназначенная для развёртывания, распространения и изоляции настольных приложений в операционных системах на базе ядра Linux. Flatpak позволяет разработчикам создавать универсальные пакеты, которые работают в изолированном окружении (песочнице) независимо от дистрибутива Linux и версий системных библиотек, что решает проблему зависимостей и фрагментации экосистемы Linux.
¶История
Проект Flatpak был основан в 2014 году разработчиками из компании Red Hat, в частности Александром Ларссоном, как преемник технологии xdg-app. Изначально проект назывался xdg-app, а в 2016 году был переименован в Flatpak. Первый стабильный релиз Flatpak 0.8.0 состоялся в мае 2016 года. Основной целью разработки было создание альтернативы традиционным системам управления пакетами (APT, DNF, Pacman), которые требуют адаптации пакетов под конкретный дистрибутив и версию библиотек. Flatpak, напротив, использует концепцию рантаймов (runtime) — предварительно собранных наборов библиотек, на которые ссылаются приложения.
В 2017—2018 годах Flatpak получил значительную поддержку со стороны сообщества и крупных дистрибутивов, включая Fedora, Ubuntu, Debian и Arch Linux. В 2019 году была запущена платформа Flathub — центральный репозиторий приложений Flatpak, который стал основным источником пакетов для пользователей. К 2025 году Flathub насчитывает тысячи приложений, включая такие популярные, как GIMP, LibreOffice, Firefox, Steam и многие другие.
¶Архитектура и принципы работы
¶Изоляция (песочница)
Основная особенность Flatpak — использование технологий изоляции Linux, таких как cgroups, namespaces, seccomp и Bubblewrap, для создания изолированного окружения для каждого приложения. Приложения Flatpak запускаются в отдельных пространствах имён (namespaces), что ограничивает их доступ к файловой системе, сети, процессам и другим ресурсам хостовой системы. Это повышает безопасность: даже если приложение скомпрометировано, злоумышленник не сможет получить доступ к данным других приложений или системе в целом.
¶Рантаймы и SDK
Flatpak использует концепцию рантаймов (runtime) — предварительно собранных наборов библиотек и инструментов, которые предоставляют приложению необходимое окружение. Различают два типа рантаймов:
- Runtime — минимальный набор библиотек для запуска приложений (например,
org.freedesktop.Platform). - SDK (Software Development Kit) — расширенный набор, включающий компиляторы, заголовочные файлы и инструменты для сборки приложений (например,
org.freedesktop.Sdk).
Приложения Flatpak ссылаются на конкретный рантайм, который устанавливается отдельно и может быть обновлён независимо от приложения. Это позволяет разработчикам не беспокоиться о совместимости с разными версиями библиотек в дистрибутивах.
¶Формат пакета
Пакет Flatpak представляет собой образ файловой системы (обычно в формате OSTree), содержащий само приложение и его зависимости, но не включающий системные библиотеки, которые предоставляются рантаймом. Пакеты распространяются в виде файлов с расширением .flatpak или через репозитории, такие как Flathub. Установка пакета производится командой flatpak install, а запуск — flatpak run.
¶Классификация и типы пакетов
Flatpak поддерживает несколько типов пакетов, различающихся по способу распространения и уровню изоляции:
- Приложения — основной тип пакетов, содержащий графические или консольные приложения. Они полностью изолированы от хостовой системы, за исключением явно разрешённых порталов (например, доступ к файлам через диалоговое окно).
- Рантаймы — базовые наборы библиотек, на которые ссылаются приложения. Могут быть стабильными (LTS) или обновляемыми.
- Расширения (extensions) — дополнительные компоненты, такие как плагины, кодеки или локализации, которые могут быть установлены поверх приложения или рантайма.
- Порталы (portals) — механизмы взаимодействия с хостовой системой, позволяющие приложению получать доступ к файлам, устройствам, сети и другим ресурсам через системные диалоги, а не напрямую.
¶Применение и значение
Flatpak широко используется в экосистеме Linux для распространения настольных приложений, особенно в дистрибутивах, ориентированных на стабильность (например, Fedora, Linux Mint, Pop!_OS). Основные преимущества:
- Универсальность: один пакет работает во всех дистрибутивах Linux, поддерживающих Flatpak.
- Безопасность: изоляция снижает риск заражения системы вредоносным ПО.
- Обновляемость: приложения и рантаймы обновляются независимо, что упрощает поддержку.
- Простота для разработчиков: не требуется адаптация под разные дистрибутивы.
Flatpak часто сравнивают с альтернативными системами, такими как Snap (разрабатывается Canonical) и AppImage. В отличие от Snap, Flatpak использует централизованный репозиторий Flathub, но не требует монопольного магазина приложений. AppImage, в свою очередь, не требует установки, но не предоставляет изоляции и автоматических обновлений.
¶Критика и ограничения
Несмотря на популярность, Flatpak подвергается критике по нескольким причинам:
- Размер пакетов: из-за необходимости загрузки рантаймов (например,
org.freedesktop.Platformвесит около 1 ГБ) начальная установка приложений может занимать много места и времени. - Дублирование зависимостей: разные приложения могут использовать разные версии рантаймов, что приводит к дублированию данных на диске.
- Ограничения изоляции: некоторые приложения требуют доступа к системным ресурсам (например, к устройствам ввода или к определённым файлам), что может быть сложно настроить через порталы.
- Интеграция с системой: приложения Flatpak могут не в полной мере интегрироваться с темой оформления, шрифтами и другими настройками рабочего стола, хотя это постепенно улучшается.
¶Интересные факты
- Flatpak поддерживает архитектуры x86_64, ARM64, AArch64 и i686.
- Проект использует формат OSTree для управления версиями пакетов, что позволяет откатывать обновления.
- Flathub, основной репозиторий Flatpak, модерируется сообществом и не требует регистрации для загрузки приложений.
- Flatpak может быть использован для распространения не только графических, но и консольных приложений, хотя это менее распространено.
¶Источники
- Официальная документация Flatpak (flatpak.org)
- Репозиторий Flathub (flathub.org)
- Статья «Flatpak: A new way to distribute Linux applications» на LWN.net
- Материалы конференций GUADEC и FOSDEM (2015–2020)
- Руководство пользователя Fedora по Flatpak
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


