Skip to content

Flatpak

Flatpak — система для создания, распространения и запуска изолированных настольных приложений в Linux.

Установка из репозитория

Flatpak можно установить через терминал:

shell
su -
apt-get update
apt-get install flatpak
shell
epm -i flatpak

Выйдите из системы и снова войдите в нее, либо перезапустите систему, чтобы убедиться, что пути flatpak обновлены правильно.

почему необходимо перезагрузиться после установки Flatpak
Обратите внимание, что каталоги

'/var/lib/flatpak/exports/share'
'/home/oleg/.local/share/flatpak/exports/share'

не находятся по пути поиска, заданном переменной окружения XDG_DATA_DIRS,
поэтому приложения, установленные Flatpak, могут не отображаться на рабочем
столе, пока сеанс не будет перезапущен.

Альтернативный вариант установки Flatpak

Альтернативный и более удобным способом является установка пакета flatpak-repo-flathub, при установке пакета: автоматические пакет выполнит все вышеизложенные операции:

shell
su -
apt-get update
apt-get install flatpak-repo-flathub
shell
epm -i flatpak-repo-flathub

Информация

В процессе установки пакета flatpak-repo-flathub произойдет подключение репозитория flathub

Установка с помощью EPM

При установке через epm сразу установится flathub, а так же применится исправление для исправления ошибки: «enabling unprivileged user namespaces»

Информация

Актуально с версии EPM 3.61.5

Для установки Flatpak с помощью EPM введите в терминале команду

shell
epm play flatpak

Использование Flatpak

Основные команды, необходимые для установки, запуска приложений Flatpak и управления ими. Для получения полного списка команд Flatpak выполните flatpak --help

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

Для просмотра репозиториев настроенных в вашей системе, выполните:

shell
flatpak remotes

Добавить репозиторий, выполните:

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

В данном случае, flathub указано локальное имя, которое присваивается удаленному устройству. URL указывает на файл удаленного устройства .flatpakrepo . Опция --if-not-exists останавливает команду от выдачи ошибки, если удаленное устройство уже существует.

Наиболее популярные репозитории

Репозиторий GNOME Nightly

shell
flatpak remote-add --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo

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

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

Удалить репозиторий, выполните:

shell
flatpak remote-delete flathub

В данном случае, flathub — локальное имя удаленного репозитория.

Поиск приложений

Для поиска приложения/среды в Flatpak используйте команду search:

shell
flatpak search krita

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

Для установки приложения, запустите:

shell
flatpak install flathub org.gimp.GIMP

flathub — идентификатор удаленного репозитория, с которого должно быть установлено приложение, и org.gimp.GIMP - идентификатор приложения.

Как правило, приложению требуется определенная среда выполнения, и она будет установлена до приложения.

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

shell
flatpak https://flathub.org/repo/appstream/org.gimp.GIMP.flatpakref

Начиная с Flatpak 1.2, команда install может выполнять предварительный поиск перед установкой приложения:

shell
$ flatpak install gimp

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

В графическом режиме для установки приложений в Flatpak используйте Центр приложений (GNOME Sofrware). Во вкладке «Установлено» в списке выбирите приложение и нажмите кнопку «Установить».

flatpak_2

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

Для запуска приложения в Flatpak используйте команду run и идентификатор приложения:

shell
flatpak run org.gimp.GIMP

Если при запуске приложения вы получаете ошибку: «enabling unprivileged user namespaces», то в данном случае может помочь выполнение следующих команд:

shell
su -
echo kernel.unprivileged_userns_clone=1 > /etc/sysctl.d/50-bubblewrap.conf
sysctl -w kernel.unprivileged_userns_clone=1
chmod 775 /usr/bin/bwrap
exit

Перезагрузите операционную систему или от введите команду в терминале:

shell
systemctl --user restart flatpak-portal.service

Осторожно

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

Отключение непривилегированных пользователей:

shell
su -
echo kernel.unprivileged_userns_clone=0 > /etc/sysctl.d/50-bubblewrap.conf
sysctl -w kernel.unprivileged_userns_clone=0
chmod 4511 /usr/bin/bwrap
systemctl --user restart flatpak-portal.service
exit
Пример ошибки enabling unprivileged user namespaces
Пример ошибки «enabling unprivileged user namespaces», на примере Яндекс Браузера (Flatpak-версия)

Удаление приложений

Для удаления приложения в Flatpak используйте команду uninstall и идентификатор приложения:

shell
flatpak uninstall org.gimp.GIMP

В графическом режиме для удаления приложений в Flatpak используйте Центр приложений (GNOME Sofrware). Во вкладке «Установлено» в списке выберите приложение и нажмите кнопку «Удалить».

flatpak_1
Пример ошибки «enabling unprivileged user namespaces», на примере Яндекс Браузера (Flatpak-версия)

Устранение неполадок

В Flatpak существует набор команд для управление пакетным менеджером.

Для удаления сред выполнения и расширений, которые не используются установленными приложениями, используйте:

shell
flatpak uninstall --unused

Для исправления поврежденных пакетов Flatpak, используйте:

shell
flatpak repair

Узнать, какие изменения вносились в вашу установку Flatpak с течением времени, вы можете просмотреть журналы:

shell
flatpak history

Авторы

The avatar of contributor named as Олег Щавелев Олег Щавелев
The avatar of contributor named as Кирилл Уницаев Кирилл Уницаев
The avatar of contributor named as Семен Фомченков Семен Фомченков
The avatar of contributor named as Давид Султаниязов Давид Султаниязов
The avatar of contributor named as Boria138 Boria138
The avatar of contributor named as alchere alchere
The avatar of contributor named as Жора Змейкин Жора Змейкин
The avatar of contributor named as h3try h3try

История изменений