Flatpak: различия между версиями
(Статья дополнена) |
|||
(не показано 16 промежуточных версий 8 участников) | |||
Строка 1: | Строка 1: | ||
'''Flatpak''' - это система для создания, распространения и запуска изолированных настольных приложений в Linux. Приложения можно устанавливать независимо от хост-системы, в которой они используются, и они в некоторой степени изолированы от хост-системы (изолированы) во время выполнения. Это позволяет пользоваться установленными приложениями вне зависимости от обновления хост-системы. | '''Flatpak''' - это система для создания, распространения и запуска изолированных настольных приложений в Linux. Приложения можно устанавливать независимо от хост-системы, в которой они используются, и они в некоторой степени изолированы от хост-системы (изолированы) во время выполнения. Это позволяет пользоваться установленными приложениями вне зависимости от обновления хост-системы. | ||
= Установка flatpak = | |||
<code># apt-get install flatpak</code> | <code># apt-get install flatpak</code> | ||
Строка 10: | Строка 10: | ||
'''USER''' - имя Вашего пользователя | '''USER''' - имя Вашего пользователя | ||
= Добавление репозиториев = | |||
<code>$ flatpak remote-add name_repository url</code> | <code>$ flatpak remote-add name_repository url</code> | ||
Строка 25: | Строка 25: | ||
<code>$ flatpak remote-add flathub https://flathub.org/repo/flathub.flatpakrepo</code> | <code>$ flatpak remote-add flathub https://flathub.org/repo/flathub.flatpakrepo</code> | ||
{{Note|При подключении репозитория от пользователя входящего в группу '''wheel''' будет запрошен пароль '''root'''.}} | {{Note|При подключении репозитория от пользователя входящего в группу '''wheel''' будет запрошен пароль '''root'''.}} | ||
= Удаление репозитория = | |||
<code>$ flatpak remote-delete name_repository</code> | <code>$ flatpak remote-delete name_repository</code> | ||
'''name_repository''' - название удаляемого репозитория. | '''name_repository''' - название удаляемого репозитория. | ||
= Список подключенных репозиториев = | |||
<code>$ flatpak remotes</code> | <code>$ flatpak remotes</code> | ||
= Поиск пакетов = | |||
Перед поиском следует выполнить обновление данных в репозитории: | Перед поиском следует выполнить обновление данных в репозитории: | ||
Строка 51: | Строка 51: | ||
'''name_repository''' - название репозитория | '''name_repository''' - название репозитория | ||
= Установка приложений = | |||
<code>$ flatpak install name_repository name_package</code> | <code>$ flatpak install name_repository name_package</code> | ||
Строка 58: | Строка 58: | ||
<code>$ flatpak install flathub firefox</code> | <code>$ flatpak install flathub firefox</code> | ||
Если пакет содержит несколько версий терминал выведет меню выбора версий. | {{Note|Если пакет содержит несколько версий терминал выведет меню выбора версий. | ||
Некоторые приложения требует другую среду выполнения она будет загружена автоматически. | Некоторые приложения требует другую среду выполнения она будет загружена автоматически.}} | ||
{{Note| Если вы устанавливаете приложения от имени пользователя, файлы flatpak-программ будут располагаться по адресу: {{path|~/.local/share/flatpak}}}} | |||
= Список установленных приложений = | |||
<code>$ flatpak list</code> | <code>$ flatpak list</code> | ||
= Запуск-удаление-обновление приложений = | |||
Запуска приложения: | Запуска приложения: | ||
<code>$ flatpak run | <code>$ flatpak run appname</code> | ||
где appname, имя приложения вида [https://flathub.org/apps/details/org.unknown_horizons.UnknownHorizons org.unknown_horizons.UnknownHorizons] (см. flathub.org) | |||
Обновление приложения: | Обновление приложения: | ||
Строка 81: | Строка 81: | ||
<code>$ flatpak uninstall name_package</code> | <code>$ flatpak uninstall name_package</code> | ||
----- | |||
С версии Flatpak 1.5.0 и выше появилась возможность запретить включение указанного пакета в обновление (вручную или автоматически). | |||
Делается это следующим образом: | |||
Блокировка обновления пакета: | |||
<code>$ flatpak mask org.openshot.OpenShot</code> | |||
Удалить пакет из списка "не обновляемых": | |||
<code>$ flatpak mask --remove org.openshot.OpenShot</code> | |||
= Удаление неиспользуемых пакетов = | |||
<code>$ flatpak uninstall --unused</code> | <code>$ flatpak uninstall --unused</code> | ||
= Просмотр и определение разрешений = | |||
'''Flatpak''' использует стандартный набор правил песочницы, которые определяют ресурсы и пути файловой системы для приложений. Чтобы просмотреть разрешения конкретного приложения необходимо узнать его '''ID''': | '''Flatpak''' использует стандартный набор правил песочницы, которые определяют ресурсы и пути файловой системы для приложений. Чтобы просмотреть разрешения конкретного приложения необходимо узнать его '''ID''': | ||
Строка 97: | Строка 111: | ||
Изменить разрешения можно командой: | Изменить разрешения можно командой: | ||
<code> | <code># flatpak override permission_option application_id</code> | ||
Например: | Например: | ||
<code> | <code># flatpak override --device=dri org.mozilla.firefox</code> | ||
Сбросить разрешения до стандартных: | Сбросить разрешения до стандартных: | ||
<code> | <code># flatpak override --reset application_id</code> | ||
== Управление разрешениями через GUI == | |||
Чтобы настроить конкретные разрешения для каждого flatpak-приложения можно воспользоваться утилитой Flatseal. | |||
<code># flatpak install flathub com.github.tchx84.Flatseal</code> | |||
После установки она будет находится в {{nav|Меню приложений|Инструменты|Flatseal}}. | |||
С ее помощью можно более тонко настроить разрешения на всю систему Flatpak или на каждое установленное приложение в отдельности. | |||
[[Файл:Flatpak-flatseal-gui.png|480px]] | |||
= Управление flatpak из GUI = | |||
'''Первый способ''' | |||
Для установки, обновления и удаления ПО из графического интерфейса используется ''Центр программ'' '''Discover'''. | Для установки, обновления и удаления ПО из графического интерфейса используется ''Центр программ'' '''Discover'''. | ||
В настройках '''Discover → Добавить репозиторий flathub'''. | В настройках '''Discover → Добавить репозиторий flathub'''. | ||
Строка 113: | Строка 141: | ||
Можно использовать [https://flathub.org/apps web-интерфейс.] Выбрать приложение скачать для него ярлык и запустить, '''Discover''' автоматически перехватит управление, добавит новый репозиторий и начнет установку. | Можно использовать [https://flathub.org/apps web-интерфейс.] Выбрать приложение скачать для него ярлык и запустить, '''Discover''' автоматически перехватит управление, добавит новый репозиторий и начнет установку. | ||
'''Второй способ''' | |||
Открываем Менеджер пакетов '''Synaptic''', устанавливаем пакет '''flatpak-repo-flathub''', также установиться и сам flatpak. | |||
Открываем '''Центр управления системой''', в меню '''Локальные группы''' находим группу '''fuse''' и добавляем нашего юзера в '''Члены группы'''. После этого перезапускаем текущую сессию. | |||
После запуска Discover пройдет обновление репозитариев, в том числе и flathub, о чем нам покажет сообщение при запуске, затем можно пользоваться обычным поиском для установки нужных flatpak прямо в Discover. | |||
'''На примере Spotify''' - запустить его можно командой '''flatpak run com.spotify.Client'''. Чтобы не запускать через терминал, а из меню, нужно добавить ярлык Spotify с помощью символьной ссылки в /.local/share/applications: | |||
ln -s /var/lib/flatpak/app/com.spotify.Client/current/active/export/share/applications/com.spotify.Client.desktop /home/USER/.local/share/applications | |||
'''На что обратить внимание в команде?''' - Расположение установленных программ в /var/lib/flatpak/app, на полный путь до ярлыка файл.desktop, а также имя своего пользователя указанного в примере - USER. | |||
Если все сделано правильно в /.local/share/applications, мы увидим наш ярлык с именем com.spotify.Client.desktop, в меню появиться Spotify. Символьная ссылка работает так - '''ln -s ''/ЧТО /КУДА''''', для понимания команды выше. | |||
Добавление в меню других программ аналогично. | |||
= Известные проблемы = | |||
Для установки приложений при помощи '''flatpak''' из-под ''непривилегированного пользователя'' следует добавить пользователя в группу '''fuse''': | Для установки приложений при помощи '''flatpak''' из-под ''непривилегированного пользователя'' следует добавить пользователя в группу '''fuse''': | ||
Строка 119: | Строка 165: | ||
{{Note|При установке приложений через терминал, чтобы они появились в меню, необходимо перелогиниться.}} | {{Note|При установке приложений через терминал, чтобы они появились в меню, необходимо перелогиниться.}} | ||
== Не найдено удаленных репозиториев == | |||
{{Attention| | |||
error: remote "flathub" not found}} | |||
{{Attention| | |||
error: No remote refs found similar to ‘flathub’}} | |||
Нет доступного репозитория их следует добавить. | Нет доступного репозитория их следует добавить. | ||
<code>$ flatpak remote-add flathub https://flathub.org/repo/flathub.flatpakrepo</code> | <code>$ flatpak remote-add flathub https://flathub.org/repo/flathub.flatpakrepo</code> | ||
Для второго случая: | |||
<code>$ flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo</code> | |||
== Неправильное имя файла == | |||
{{Attention| | |||
error: Nothing matches io.brackets.Brackets.flatpakref in remote flathub}} | |||
Неправильное название файла ярлыка. | |||
Например: '''io.brackets.Brackets.flatpakref''' | Например: '''io.brackets.Brackets.flatpakref''' | ||
Убрать из имени '''.flatpakref''' | Убрать из имени '''.flatpakref''' | ||
== Не удается смонтировать fuse fs == | |||
''' | {{Attention| | ||
Can't get document portal: GDBus.Error:org.freedesktop.portal.Error.Failed: Can't mount fuse fs}} | |||
Добавить пользователя в группу '''fuse''' | |||
<code># gpasswd -a $USER fuse</code> | |||
== Discover падает при добавлении новой программы == | |||
{{Attention| | |||
Could not unmount revokefs-fuse filesystem | |||
Failed to execute child process fusermount (Permission denied)}} | |||
При этом '''Discover''' крашится. | При этом '''Discover''' крашится. | ||
Нет прав на монтирование файловой системы. | Нет прав на монтирование файловой системы. | ||
<code># control fusermount wheelonly</code> | <code># control fusermount wheelonly</code> | ||
== Нет соединения с интернетом == | |||
{{Attention| | |||
Не удалось получить список приложений. Проверьте соединение с интернетом}} | |||
'''Discover''' сообщает об ошибке соединения с интернетом. | |||
Следует установить пакет '''plasma5-discover-packagekit'''. | |||
<code># plasma5-discover-packagekit</code> | |||
Перезапустить сеанс | |||
== Не добавляет ярлыки в меню приложений == | |||
{{Attention| | |||
Note that the directories | |||
'/var/lib/flatpak/exports/share' | |||
'/home/zloyadmin/.local/share/flatpak/exports/share' | |||
are not in the search path set by the XDG_DATA_DIRS environment variable, so | |||
applications installed by Flatpak may not appear on your desktop until the | |||
session is restarted.}} | |||
Не добавляет ярлыки программ в меню приложений. | |||
Сделать файл flatpak.sh исполняемым. | |||
<code># chmod +x /etc/profile.d/flatpak.sh</code> | |||
Перезапустить сеанс. Это действие в DE kde [https://bugzilla.altlinux.org/show_bug.cgi?id=38397 вызывает вылет при загрузке]. | |||
== При запуске приложений выдаёт '''unprivileged user namespaces disabled''' == | |||
Должно помогать | |||
<code># sysctl -w kernel.unprivileged_userns_clone=1</code> | |||
или установка пакета sysctl-conf-userns, но не помогает. | |||
= Полезные ссылки = | |||
*[https://docs.flatpak.org/en/latest/index.html Документация flatpak] | |||
*[https://github.com/flatpak/flatpak/blob/master/README.md README проекта] | |||
*[https://flathub.org/home Web-интерфейс для поиска приложений] | |||
*[https://flatpak.org/ Сайт разработчиков flatpak] | |||
{{Category navigation|title=ALT Linux Desktop|category=ALT Linux Desktop}} | {{Category navigation|title=ALT Linux Desktop|category=ALT Linux Desktop}} | ||
[[Категория:Стороннее ПО]] |
Текущая версия от 12:03, 19 ноября 2024
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
Удаление репозитория
$ 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
Список установленных приложений
$ flatpak list
Запуск-удаление-обновление приложений
Запуска приложения:
$ flatpak run appname
где appname, имя приложения вида org.unknown_horizons.UnknownHorizons (см. flathub.org)
Обновление приложения:
$ flatpak update name_package
Удаление приложения:
$ flatpak uninstall name_package
С версии Flatpak 1.5.0 и выше появилась возможность запретить включение указанного пакета в обновление (вручную или автоматически).
Делается это следующим образом:
Блокировка обновления пакета:
$ flatpak mask org.openshot.OpenShot
Удалить пакет из списка "не обновляемых":
$ flatpak mask --remove org.openshot.OpenShot
Удаление неиспользуемых пакетов
$ 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
Управление разрешениями через GUI
Чтобы настроить конкретные разрешения для каждого flatpak-приложения можно воспользоваться утилитой Flatseal.
# flatpak install flathub com.github.tchx84.Flatseal
После установки она будет находится в Меню приложений ▷ Инструменты ▷ Flatseal.
С ее помощью можно более тонко настроить разрешения на всю систему Flatpak или на каждое установленное приложение в отдельности.
Управление flatpak из GUI
Первый способ
Для установки, обновления и удаления ПО из графического интерфейса используется Центр программ Discover. В настройках Discover → Добавить репозиторий flathub.
Можно использовать web-интерфейс. Выбрать приложение скачать для него ярлык и запустить, Discover автоматически перехватит управление, добавит новый репозиторий и начнет установку.
Второй способ
Открываем Менеджер пакетов Synaptic, устанавливаем пакет flatpak-repo-flathub, также установиться и сам flatpak.
Открываем Центр управления системой, в меню Локальные группы находим группу fuse и добавляем нашего юзера в Члены группы. После этого перезапускаем текущую сессию.
После запуска Discover пройдет обновление репозитариев, в том числе и flathub, о чем нам покажет сообщение при запуске, затем можно пользоваться обычным поиском для установки нужных flatpak прямо в Discover.
На примере Spotify - запустить его можно командой flatpak run com.spotify.Client. Чтобы не запускать через терминал, а из меню, нужно добавить ярлык Spotify с помощью символьной ссылки в /.local/share/applications:
ln -s /var/lib/flatpak/app/com.spotify.Client/current/active/export/share/applications/com.spotify.Client.desktop /home/USER/.local/share/applications
На что обратить внимание в команде? - Расположение установленных программ в /var/lib/flatpak/app, на полный путь до ярлыка файл.desktop, а также имя своего пользователя указанного в примере - USER.
Если все сделано правильно в /.local/share/applications, мы увидим наш ярлык с именем com.spotify.Client.desktop, в меню появиться Spotify. Символьная ссылка работает так - ln -s /ЧТО /КУДА, для понимания команды выше.
Добавление в меню других программ аналогично.
Известные проблемы
Для установки приложений при помощи flatpak из-под непривилегированного пользователя следует добавить пользователя в группу fuse:
# gpasswd -a USER fuse
Не найдено удаленных репозиториев
Нет доступного репозитория их следует добавить.
$ flatpak remote-add flathub https://flathub.org/repo/flathub.flatpakrepo
Для второго случая:
$ flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Неправильное имя файла
Неправильное название файла ярлыка. Например: io.brackets.Brackets.flatpakref
Убрать из имени .flatpakref
Не удается смонтировать fuse fs
Добавить пользователя в группу fuse
# gpasswd -a $USER fuse
Discover падает при добавлении новой программы
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
Перезапустить сеанс
Не добавляет ярлыки в меню приложений
Note that the directories
'/var/lib/flatpak/exports/share' '/home/zloyadmin/.local/share/flatpak/exports/share'
are not in the search path set by the XDG_DATA_DIRS environment variable, so applications installed by Flatpak may not appear on your desktop until the
session is restarted.Не добавляет ярлыки программ в меню приложений. Сделать файл flatpak.sh исполняемым.
# chmod +x /etc/profile.d/flatpak.sh
Перезапустить сеанс. Это действие в DE kde вызывает вылет при загрузке.
При запуске приложений выдаёт unprivileged user namespaces disabled
Должно помогать
# sysctl -w kernel.unprivileged_userns_clone=1
или установка пакета sysctl-conf-userns, но не помогает.