如何始終以文件系統權限執行 flatpak 應用程序?
我通過 flatpak 從 flathub 遠端安裝了 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;博士
如果應用程序是“使用者範圍”安裝的,則將
--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
現在,當從系統菜單甚至從 shell 啟動時,應用程序可以訪問上述文件系統,而無需指定權限 (
flatpak run com.github.alainm23.byte
)。