Как всегда запускать приложение Flatpak с разрешением файловой системы?
Я установил приложение 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
Ответы
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
).