Flatpak — система упаковки и дистрибуции приложений для Linux с изоляцией через контейнер и универсальностью: один пакет работает на любом дистрибутиве (Ubuntu, Fedora, Debian, openSUSE) без переупаковки. Приложение включает собственные зависимости — не зависит от версий системных библиотек. Главный репозиторий — Flathub.org с более чем 2 000 приложений.
Принцип работы
Flatpak использует OSTree (version control для файловых систем) для хранения и обновления приложений. Каждое приложение запускается в sandbox с ограниченным доступом к файловой системе, сети и устройствам через Portals API. Приложение видит только свой ~/.var/app/{appid}/ и файлы, доступ к которым разрешён пользователем через диалог.
Основные команды
# Добавить репозиторий Flathub
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# Установить приложение
flatpak install flathub org.libreoffice.LibreOffice
# Запустить приложение
flatpak run org.gimp.GIMP
# Обновить все приложения
flatpak update
# Список установленных
flatpak list
# Удалить
flatpak uninstall org.libreoffice.LibreOffice
История
Flatpak разработан Александром Ларссоном (Alexander Larsson) из Red Hat в 2007 году (тогда проект назывался Glick). В 2012 году переименован в xdg-app, затем в 2016 году — в Flatpak. Flathub.org запущен в 2017 году как центральный репозиторий. Red Hat, Endless OS и другие компании активно участвуют в разработке. Конкурент — Snap от Canonical: принудительно использует только их реестр (snapcraft.io).
Flatpak vs Snap vs AppImage
| Параметр | Flatpak | Snap | AppImage |
|---|---|---|---|
| Sandbox | Да (строгий) | Да | Нет |
| Децентрализованные репо | Да | Нет (только Snapcraft) | N/A |
| Скорость запуска | Средняя | Медленная (snapd daemon) | Быстрая |
| Серверное применение | Нет | Иногда | Нет |
Flatpak и серверный хостинг
Flatpak ориентирован на десктопные приложения — на серверах без GUI практически не применяется. Серверный аналог для изоляции приложений — Docker/Контейнеры: они обеспечивают изоляцию и воспроизводимость для серверных сервисов (Nginx, MySQL, Redis) без GUI. Для серверной установки стандартных приложений используй APT, DNF или Docker.
История Flatpak
Flatpak (ранее xdg-app) разработан Александром Ларссоном (Alexander Larsson) из Red Hat в 2013–2016 годах. Проект ответил на давнюю проблему Linux: разные дистрибутивы имели разные версии системных библиотек, из-за чего разработчики вынуждены были создавать пакеты для каждого дистрибутива отдельно. Flatpak 0.9.0 переименован из xdg-app в 2016 году; Flathub.org (централизованный репозиторий) запущен в 2017 году. К 2023 году Flathub содержит более 2 000 приложений с 2+ миллионами уникальных установок в месяц.
Flatpak vs Snap vs AppImage
| Параметр | Flatpak | Snap (Canonical) | AppImage |
|---|---|---|---|
| Репозиторий | Flathub.org (независимый) | Snap Store (Ubuntu) | Нет централизованного |
| Изоляция | Буддерфи (sandbox) | AppArmor/seccomp | Нет изоляции |
| Автообновление | Да (фоново) | Да (автоматически) | Нет |
| Серверное применение | Очень ограниченное | Серверные снапы (ограниченно) | Нет |
| Размер пакетов | Больше (зависимости) | Больше | Компактно |
На что обращать внимание
Flatpak предназначен исключительно для десктопных приложений с GUI. На VPS без графического интерфейса Flatpak не имеет смысла — для серверных сервисов используй APT, DNF или Docker. Пакеты Flatpak крупнее нативных из-за bundled-зависимостей: LibreOffice в Flatpak занимает ~1 ГБ против ~300 МБ в APT. Sandbox ограничивает доступ к файловой системе и сети — иногда требуется дополнительная настройка разрешений через flatpak override.