Flatpak

Материал из ALT Linux Wiki

Flatpak - это система для создания, распространения и запуска изолированных настольных приложений в Linux. Приложения можно устанавливать независимо от хост-системы, в которой они используются, и они в некоторой степени изолированы от хост-системы (изолированы) во время выполнения. Это позволяет пользоваться установленными приложениями вне зависимости от обновления хост-системы.

Установка flatpak

# apt-get install flatpak

Для установки приложений при помощи flatpak из-под непривилегированного пользователя следует добавить пользователя в группу fuse:

# gpasswd -a USER fuse

USER - имя Вашего пользователя

Добавление репозиториев

$ flatpak remote-add name_repository url

name_repository - название удаленного репозитория

url - url адрес репозитория

После подключения нового репозитория следует выполнить обновление его данных:

$ flatpak update

Пример:

$ flatpak remote-add flathub https://flathub.org/repo/flathub.flatpakrepo

Примечание: При подключении репозитория от пользователя входящего в группу wheel будет запрошен пароль root.


Удаление репозитория

$ flatpak remote-delete name_repository

name_repository - название удаляемого репозитория.

Список подключенных репозиториев

$ flatpak remotes

Поиск пакетов

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

$ flatpak update

Для поиска пакета:

$ flatpak search name_package

name_package - название Вашего пакета.

Получение списка пакетов в репозитории:

$ flatpak remote-ls name_repository

name_repository - название репозитория

Установка приложений

$ flatpak install name_repository name_package

Например:

$ flatpak install flathub firefox

Примечание: Если пакет содержит несколько версий терминал выведет меню выбора версий. Некоторые приложения требует другую среду выполнения она будет загружена автоматически.


Файлы размещаются по адресу:

~/.local/share/flatpak

Список установленных приложений

$ flatpak list

Запуск-удаление-обновление приложений

Запуска приложения:

$ flatpak run appname

где appname, имя приложения вида org.unknown_horizons.UnknownHorizons (см. flathub.org)

Обновление приложения:

$ flatpak update name_package

Удаление приложения:

$ flatpak uninstall name_package

Удаление неиспользуемых пакетов

$ flatpak uninstall --unused

Просмотр и определение разрешений

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

$ flatpak list | grep name_package

Затем посмотреть разрешения:

$ flatpak info --show-permissions application_id

Список доступных параметров для разрешений Вы можете найти в документации flatpak.

Изменить разрешения можно командой:

$ flatpak override permission_option application_id

Например:

$ flatpak override --device=dri org.mozilla.firefox

Сбросить разрешения до стандартных:

$ flatpak override --reset application_id

Управление flatpak из GUI

Для установки, обновления и удаления ПО из графического интерфейса используется Центр программ Discover. В настройках Discover → Добавить репозиторий flathub.

Можно использовать web-интерфейс. Выбрать приложение скачать для него ярлык и запустить, Discover автоматически перехватит управление, добавит новый репозиторий и начнет установку.

Известные проблемы

Для установки приложений при помощи flatpak из-под непривилегированного пользователя следует добавить пользователя в группу fuse:

# gpasswd -a USER fuse

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


Внимание! error: remote "flathub" not found
Внимание! error: No remote refs found similar to ‘flathub’

Нет доступного репозитория их следует добавить.

$ flatpak remote-add flathub https://flathub.org/repo/flathub.flatpakrepo

Для второго случая:

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

Внимание! error: Nothing matches io.brackets.Brackets.flatpakref in remote flathub

Неправильное название файла ярлыка. Например: io.brackets.Brackets.flatpakref

Убрать из имени .flatpakref

Внимание! Can't get document portal: GDBus.Error:org.freedesktop.portal.Error.Failed: Can't mount fuse fs

Добавить пользователя в группу fuse

# gpasswd -a $USER fuse

Внимание!

Could not unmount revokefs-fuse filesystem

Failed to execute child process fusermount (Permission denied)

При этом Discover крашится. Нет прав на монтирование файловой системы.

# control fusermount wheelonly

Внимание! Не удалось получить список приложений. Проверьте соединение с интернетом

Discover сообщает об ошибке соединения с интернетом. Следует установить пакет plasma5-discover-packagekit.

# plasma5-discover-packagekit Перезапустить сеанс

Полезные ссылки