ファイルシステムのパーミッションで常にflatpakアプリケーションを実行するにはどうすればよいですか?

Aug 20 2020

flathubリモートからflatpakを介してByte(com.github.alainm23.byte)アプリをインストールしました。それは音楽プレーヤーアプリです。私の音楽ライブラリは私のシステムとは別のHDに保存されており、起動時にに正しくマウントされてい/media/myuser/D2ます。

以来flatpakアプリがホスト環境へのアクセスが制限されてきた私は、それが所望の経路にアクセスできるように、アプリにファイルシステムのアクセス許可を提供する必要があります。

ドキュメントによると、runandoverrideコマンドでその権限を設定できます。

ターミナルからアプリを起動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

詳細

そのため、よく考えて、flatpakデスクトップエントリに関するgithubの問題を読んだ後(この時点で、手動で調整して回避することを考えていました)、何が起こっているのかを理解しました。

基本的に、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)を指定せずにシェルから起動したときに、前述のファイルシステムにアクセスできます。