Comment toujours exécuter une application flatpak avec une autorisation de système de fichiers?

Aug 20 2020

J'ai installé l'application Byte (com.github.alainm23.byte) à partir de la télécommande flathub via flatpak. C'est une application de lecteur de musique. Ma bibliothèque musicale est stockée sur un autre disque dur que mon système, qui est correctement monté au démarrage à /media/myuser/D2.

Étant donné que les applications flatpak ont ​​un accès limité à l'environnement hôte, je dois fournir une autorisation de système de fichiers à l'application afin qu'elle puisse accéder au chemin souhaité.

Selon la documentation, je peux définir cette autorisation avec les commandes runet override.

Lorsque je lance l'application à partir du terminal qui l'utilise, flatpak run --filesystem=/media com.github.alainm23.byteelle fonctionne comme prévu et l'application peut accéder au chemin souhaité.

Cependant, lorsque je lance l'application à partir du menu système, l'application ne peut pas accéder au chemin. Je pensais qu'en exécutant la commande de remplacement avec l'autorisation du système de fichiers ( sudo flatpak override --filesystem=/media com.github.alainm23.byte), cela résoudrait le problème et permettrait à l'application d'avoir accès au chemin même lorsqu'elle était lancée à partir du menu système ou même lors de l'exécution à partir du terminal sans l'autorisation ( flatpak run com.github.alainm23.byte), mais cela pas, j'ai même redémarré ma machine pour la tester.

Quand je l'exécute, flatpak override --show com.github.alainm23.byteil sort:

[Context]
filesystems=/media;

Cela me fait penser que l'autorisation a été correctement définie.

Après avoir défini le remplacement, si je l'exécute à partir du terminal sans l'autorisation ( flatpak run com.github.alainm23.byte), lorsque j'essaye d'accéder au système de fichiers dans l'application, il génère:

(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

Alors, comment l'application peut-elle être lancée à partir du menu système avec l'autorisation d'accès /media?

Voici quelques informations système qui pourraient être utiles

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

Réponses

2 avila Aug 25 2020 at 17:47

TL; DR

Si l'application est installée "à l'échelle de l'utilisateur", ajoutez l' --useroption à la commande de remplacement:

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

Détaillé

Donc, après avoir beaucoup réfléchi et lu un problème github sur les entrées de bureau flatpak (à ce stade, je pensais à une solution de contournement en le peaufinant manuellement), j'ai compris ce qui se passait.

Fondamentalement, flatpak installinstalle les applications «à l'échelle du système» par défaut. Cependant, je l'ai installé à partir du Pop! _Shop (magasin de distribution). J'ai réalisé que l'application ne se trouvait pas dans le dossier système ( /var/lib/flatpak/app), mais dans le dossier utilisateur ( ~/.local/share/flatpak/app). Pour cette raison, je peux conclure que Pop! _Shop a installé l'application "à l'échelle de l'utilisateur".

Quand j'ai couru flatpak override --filesystem=/media com.github.alainm23.byteà l'époque, cela se plaignait et je l'ai juste ajouté sudoet cela a fonctionné. À ce moment-là, je n'avais pas réalisé que cela définirait simplement le remplacement sur une "installation à l'échelle du système" et l'application a été installée "à l'échelle de l'utilisateur".

Ainsi, l'ajout de l'option --userà la overridecommande résout le problème, et cela ne nécessite pas sudo.

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

Maintenant, l'application a accès au système de fichiers susmentionné lorsqu'elle est lancée à partir du menu système et même à partir du shell sans spécifier l'autorisation ( flatpak run com.github.alainm23.byte).