Flatpak: различия между версиями

Материал из ALT Linux Wiki
 
(не показано 5 промежуточных версий 4 участников)
Строка 61: Строка 61:
Некоторые приложения требует другую среду выполнения она будет загружена автоматически.}}
Некоторые приложения требует другую среду выполнения она будет загружена автоматически.}}


Файлы размещаются по адресу:
{{Note| Если вы устанавливаете приложения от имени пользователя, файлы flatpak-программ будут располагаться по адресу: {{path|~/.local/share/flatpak}}}}
 
'''~/.local/share/flatpak'''


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


<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>


= Удаление неиспользуемых пакетов =
= Удаление неиспользуемых пакетов =
Строка 99: Строка 111:
Изменить разрешения можно командой:
Изменить разрешения можно командой:


<code>$ flatpak override permission_option application_id</code>
<code># flatpak override permission_option application_id</code>


Например:
Например:


<code>$ flatpak override --device=dri org.mozilla.firefox</code>
<code># flatpak override --device=dri org.mozilla.firefox</code>


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


<code>$ flatpak override --reset application_id</code>
<code># flatpak override --reset application_id</code>


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


Можно использовать [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 ''/ЧТО /КУДА''''', для понимания команды выше.
Добавление в меню других программ аналогично.


= Известные проблемы =
= Известные проблемы =
Строка 184: Строка 216:


Перезапустить сеанс. Это действие в DE kde [https://bugzilla.altlinux.org/show_bug.cgi?id=38397 вызывает вылет при загрузке].
Перезапустить сеанс. Это действие в 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, но не помогает.


= Полезные ссылки =
= Полезные ссылки =
Строка 191: Строка 230:
*[https://flatpak.org/ Сайт разработчиков flatpak]
*[https://flatpak.org/ Сайт разработчиков flatpak]
{{Category navigation|title=ALT Linux Desktop|category=ALT Linux Desktop}}
{{Category navigation|title=ALT Linux Desktop|category=ALT Linux Desktop}}
[[Категория:Стороннее ПО]]

Текущая версия от 14:41, 23 апреля 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

Примечание: При подключении репозитория от пользователя входящего в группу 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

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


Примечание: Если вы устанавливаете приложения от имени пользователя, файлы flatpak-программ будут располагаться по адресу: ~/.local/share/flatpak


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

$ 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

Управление 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

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

Не найдено удаленных репозиториев

Внимание! 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

Не удается смонтировать fuse fs

Внимание! Can't get document portal: GDBus.Error:org.freedesktop.portal.Error.Failed: Can't mount 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, но не помогает.

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