Работаем с Flatpak-пакетами в Fedora

В данной статье мы подробно рассмотрим о том, как подключать Flatpak-репозитории, а также управлять Flatpak-пакетами в Fedora.

Введение

Flatpak – это современный, прогрессивный формат самодостаточных пакетов для GNU/Linux. Он поддерживает рантаймы, изоляцию внутри песочниц, установку без наличия прав суперпользователя и многое другое.

Ранее мы уже достаточно подробно рассказывали о преимуществах Flatpak в нашей статье о правильном создании пакетов.

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

В настоящее время самым крупным, популярным и активно поддерживаемым сообществом репозиторием с Flatpak пакетами является Flathub. Он содержит огромное количество приложений, оформленных в качестве самодостаточных пакетов, включая проприетарные (Skype, Steam, Spotify и т.д.). Многие из них поддерживаются непосредственно разработчиками.

Подключение Flathub

Подключим Flathub в Fedora из консоли, выполнив следующую команду:

flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Его также можно добавить и из графического режима. Достаточно лишь загрузить repo-файл средствами браузера и открыть его в Gnome Software или другом графическом менеджере пакетов. На вопрос о подключении ответим утвердительно.

Установка пакетов через Flatpak

Установим пакет для текущего пользователя (для этого не требуется повышение прав до суперпользователя):

flatpak --user install flathub com.valvesoftware.Steam

Здесь после команды install указывается репозиторий, откуда данный пакет будет установлен, а также его уникальный идентификатор внутри него.

Графические менеджеры пакетов вроде Gnome Software также поддерживают установку флатпаков. Нужно лишь выбрать интересующий нас пакет на одноимённой странице и нажать кнопку Установить.

Запуск пакетов

Запустим установленный пакет:

flatpak run com.valvesoftware.Steam

Однако в большинстве случаев запускать пакеты вручную не требуется, т.к. актуальная версия Flatpak автоматически создаёт ярлыки в главном меню используемой графической среды пользователя.

Удаление пакетов

Удалим установленный в профиле текущего пользователя пакет:

flatpak --user uninstall com.valvesoftware.Steam

Иногда после удаления приложения могут оставаться неиспользуемые рантаймы, поэтому очистим и их:

flatpak --user uninstall --unused

Обновление пакетов

Проверим доступность обновлений для установленных пакетов:

flatpak --user update

Обновим конкретный пакет посредством flatpak update:

flatpak --user update com.valvesoftware.Steam

Тонкая настройка Sandbox окружения

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

Политики Flatpak позволяют нам гибко управлять этим посредством команды flatpak override.

Пример 1. Запретим браузеру Firefox доступ к любым каталогам, за исключением стандартного каталога хранения загружаемых файлов:

flatpak --user override --nofilesystem=home --filesystem=xdg-download:rw org.mozilla.Firefox

Пример 2. Запретим клиенту Transmission доступ к домашнему каталогу, за исключением ~/mydir:

flatpak --user override --nofilesystem=home --filesystem=home/mydir:rw com.transmissionbt.Transmission

Более подробную информацию о тонкой настройке можно найти здесь и здесь.