Comment toujours exécuter une application flatpak avec une autorisation de système de fichiers?
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 run
et override
.
Lorsque je lance l'application à partir du terminal qui l'utilise, flatpak run --filesystem=/media com.github.alainm23.byte
elle 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.byte
il 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
TL; DR
Si l'application est installée "à l'échelle de l'utilisateur", ajoutez l' --user
option à 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 install
installe 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é sudo
et 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 override
commande 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
).