Как всегда запускать приложение Flatpak с разрешением файловой системы?

Aug 20 2020

Я установил приложение Byte (com.github.alainm23.byte) с пульта flathub через flatpak. Это приложение для музыкального плеера. Моя музыкальная библиотека хранится на другом жестком диске, чем моя система, которая правильно монтируется при запуске /media/myuser/D2.

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

Согласно документации , я могу установить , что разрешение с runи overrideкомандами.

Когда я запускаю приложение с терминала, flatpak run --filesystem=/media com.github.alainm23.byteоно работает так, как задумано, и приложение может получить доступ к желаемому пути.

Однако, когда я запускаю приложение из системного меню, приложение не может получить доступ к пути. Я думал, что запуск команды переопределения с разрешением файловой системы ( sudo flatpak override --filesystem=/media com.github.alainm23.byte) решит проблему и позволит приложению иметь доступ к пути даже при запуске из системного меню или даже при запуске с терминала без разрешения ( flatpak run com.github.alainm23.byte), но это не сделал, я даже перезапустил свою машину, чтобы проверить это.

Когда я запускаю, flatpak override --show com.github.alainm23.byteон выводит:

[Context]
filesystems=/media;

Это заставляет меня думать, что разрешение установлено правильно.

Установив переопределение, если я запускаю его с терминала без разрешения ( flatpak run com.github.alainm23.byte), при попытке доступа к файловой системе в приложении он выводит:

(com.github.alainm23.byte:2): Gtk-WARNING **: 11:40:55.105: Failed to measure available space: Erro ao obter informações do sistema de arquivos para /media/myuser/D2: No such file or directory

Итак, как можно запустить приложение из системного меню с разрешением на доступ /media?

Вот некоторая системная информация, которая может быть полезна

myuser@pop-os:~$ inxi --system System: Host: pop-os Kernel: 5.4.0-7634-generic x86_64 bits: 64 Desktop: Gnome 3.36.4 Distro: Pop!_OS 20.04 LTS myuser@pop-os:~$ flatpak --version
Flatpak 1.6.5

Ответы

2 avila Aug 25 2020 at 17:47

TL; DR

Если приложение установлено «на уровне пользователя», добавьте --userпараметр в команду переопределения:

flatpak override --user --filesystem=/media com.github.alainm23.byte

Подробно

Итак, после долгих размышлений и чтения вопроса на github о записях на рабочем столе flatpak (на этом этапе я думал об обходном пути, вручную настроив его), я понял, что происходит.

Как правило, flatpak installпо умолчанию устанавливает приложения «в масштабе всей системы». Однако я установил его из Pop! _Shop (магазин дистрибутивов). Я понял, что приложения нет в системной папке ( /var/lib/flatpak/app), но оно находится в папке пользователя ( ~/.local/share/flatpak/app). Из этого я могу сделать вывод, что Pop! _Shop установил приложение «на уровне пользователя».

Когда я тогда бежал flatpak override --filesystem=/media com.github.alainm23.byte, он жаловался, и я просто готовился sudoк этому, и он работал. В то время я не понимал, что это просто установит переопределение на «общесистемную установку», и приложение будет установлено «на уровне пользователя».

Итак, добавление параметра --userв overrideкоманду решает проблему, и для этого не требуется sudo.

flatpak override --user --filesystem=/media com.github.alainm23.byte

Теперь приложение имеет доступ к вышеупомянутой файловой системе при запуске из системного меню и даже из оболочки без указания разрешения ( flatpak run com.github.alainm23.byte).