В данной статье мы подробно рассмотрим о том, как подключать 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
Более подробную информацию о тонкой настройке можно найти здесь и здесь.