¿Cómo ejecutar siempre una aplicación flatpak con un permiso del sistema de archivos?

Aug 20 2020

Instalé la aplicación Byte (com.github.alainm23.byte) desde el control remoto flathub a través de flatpak. Esa es una aplicación de reproductor de música. Mi biblioteca de música está almacenada en otro disco duro que mi sistema, que se está montando correctamente al inicio en /media/myuser/D2.

Dado que las aplicaciones flatpak tienen acceso limitado al entorno de host , tengo que proporcionar un permiso de sistema de archivos a la aplicación para que pueda acceder a la ruta deseada.

De acuerdo con los documentos , puedo establecer ese permiso con los comandos runy override.

Cuando ejecuto la aplicación desde el terminal, la uso flatpak run --filesystem=/media com.github.alainm23.bytefunciona según lo previsto y la aplicación puede acceder a la ruta deseada.

Sin embargo, cuando ejecuto la aplicación desde el menú del sistema, la aplicación no puede acceder a la ruta. Pensé que al ejecutar el comando de anulación con el permiso del sistema de archivos ( sudo flatpak override --filesystem=/media com.github.alainm23.byte) resolvería el problema y permitiría que la aplicación tuviera acceso a la ruta incluso cuando se iniciara desde el menú del sistema o incluso cuando se ejecutaba desde la terminal sin el permiso ( flatpak run com.github.alainm23.byte), pero no lo hice, incluso reinicié mi máquina para probarla.

Cuando lo ejecuto flatpak override --show com.github.alainm23.byteproduce:

[Context]
filesystems=/media;

Eso me hace pensar que el permiso se estableció correctamente.

Habiendo configurado el override, si lo ejecuto desde el terminal sin el permiso ( flatpak run com.github.alainm23.byte), cuando intento acceder al sistema de archivos en la aplicación, da como resultado:

(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

Entonces, ¿cómo se puede iniciar la aplicación desde el menú del sistema con permiso de acceso /media?

Aquí hay información del sistema que puede ser útil

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

Respuestas

2 avila Aug 25 2020 at 17:47

TL; DR

Si la aplicación está instalada "para todo el usuario", agregue la --useropción al comando de anulación:

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

Detallado

Entonces, después de pensar mucho y leer un problema de github sobre las entradas de escritorio de Flatpak (en este punto estaba pensando en solucionarlo ajustándolo manualmente), entendí lo que estaba sucediendo.

Básicamente, flatpak installinstala aplicaciones "en todo el sistema" de forma predeterminada. Sin embargo, lo instalé desde Pop! _Shop (tienda de distribución). Me di cuenta de que la aplicación no estaba en la carpeta del sistema ( /var/lib/flatpak/app), pero estaba en la carpeta del usuario ( ~/.local/share/flatpak/app). Por eso puedo concluir que Pop! _Shop instaló la aplicación "para todo el usuario".

Cuando corría en flatpak override --filesystem=/media com.github.alainm23.byteese entonces, se quejaba y simplemente lo anteponía sudoy funcionó. En ese momento no me di cuenta de que hacer eso simplemente establecería la anulación en una "instalación en todo el sistema" y la aplicación se instaló "en todo el usuario".

Por lo tanto, agregar la opción --useral overridecomando resuelve el problema y no es necesario sudo.

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

Ahora la aplicación tiene acceso al sistema de archivos antes mencionado cuando se inicia desde el menú del sistema e incluso desde el shell sin especificar el permiso ( flatpak run com.github.alainm23.byte).