ファイルシステムのパーミッションで常にflatpakアプリケーションを実行するにはどうすればよいですか?
flathubリモートからflatpakを介してByte(com.github.alainm23.byte)アプリをインストールしました。それは音楽プレーヤーアプリです。私の音楽ライブラリは私のシステムとは別のHDに保存されており、起動時にに正しくマウントされてい/media/myuser/D2
ます。
以来flatpakアプリがホスト環境へのアクセスが制限されてきた私は、それが所望の経路にアクセスできるように、アプリにファイルシステムのアクセス許可を提供する必要があります。
ドキュメントによると、run
andoverride
コマンドでその権限を設定できます。
ターミナルからアプリを起動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
詳細
そのため、よく考えて、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
)を指定せずにシェルから起動したときに、前述のファイルシステムにアクセスできます。