Bagaimana cara selalu menjalankan aplikasi flatpak dengan izin sistem file?
Saya menginstal aplikasi Byte (com.github.alainm23.byte) dari remote flathub melalui flatpak. Itu adalah aplikasi pemutar musik. Perpustakaan musik saya disimpan di HD selain sistem saya, yang dipasang dengan benar saat memulai pada /media/myuser/D2
.
Karena aplikasi flatpak memiliki akses terbatas ke lingkungan host, saya harus memberikan izin sistem file ke aplikasi sehingga aplikasi dapat mengakses jalur yang diinginkan.
Menurut dokumen saya dapat mengatur izin itu dengan perintah run
dan override
.
Ketika saya meluncurkan aplikasi dari terminal menggunakannya flatpak run --filesystem=/media com.github.alainm23.byte
berfungsi sebagaimana mestinya dan aplikasi dapat mengakses jalur yang diinginkan.
Namun ketika saya meluncurkan aplikasi dari menu sistem, aplikasi tidak dapat mengakses jalur. Saya pikir dengan menjalankan perintah override dengan izin filesystem ( sudo flatpak override --filesystem=/media com.github.alainm23.byte
) akan menyelesaikan masalah dan memungkinkan aplikasi memiliki akses ke jalur bahkan ketika diluncurkan dari menu sistem atau bahkan ketika dijalankan dari terminal tanpa izin ( flatpak run com.github.alainm23.byte
), tetapi itu tidak, saya bahkan me-restart mesin saya untuk mengujinya.
Ketika saya menjalankannya flatpak override --show com.github.alainm23.byte
, output:
[Context]
filesystems=/media;
Itu membuat saya berpikir bahwa izin telah ditetapkan dengan benar.
Memiliki set override, jika saya menjalankannya dari terminal tanpa izin ( flatpak run com.github.alainm23.byte
), ketika mencoba mengakses sistem file di aplikasi, itu menghasilkan:
(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
Jadi, bagaimana aplikasi diluncurkan dari menu sistem dengan izin untuk mengakses /media
?
Berikut beberapa info sistem yang mungkin bisa membantu
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
Jawaban
TL; DR
Jika aplikasi diinstal "di seluruh pengguna", tambahkan --user
opsi ke perintah penggantian:
flatpak override --user --filesystem=/media com.github.alainm23.byte
Terperinci
Jadi, setelah banyak berpikir, dan membaca masalah github tentang entri desktop flatpak (pada titik ini saya berpikir untuk mengatasinya dengan menyesuaikannya secara manual), saya mengerti apa yang terjadi.
Pada dasarnya, flatpak install
menginstal aplikasi "di seluruh sistem" secara default. Namun saya menginstalnya dari Pop! _Shop (toko distro). Saya menyadari aplikasi tidak ada di folder sistem ( /var/lib/flatpak/app
), tetapi ada di folder pengguna ( ~/.local/share/flatpak/app
). Karena itu saya dapat menyimpulkan bahwa Pop! _Shop menginstal aplikasi "user-wide".
Ketika saya berlari flatpak override --filesystem=/media com.github.alainm23.byte
saat itu, itu akan mengeluh dan saya hanya menambahkannya sudo
dan itu berhasil. Pada saat itu saya tidak menyadari bahwa melakukan itu hanya akan menyetel penggantian ke "penginstalan seluruh sistem" dan aplikasi diinstal "di seluruh pengguna".
Jadi, menambahkan opsi --user
ke override
perintah memecahkan masalah, dan itu tidak perlu sudo
.
flatpak override --user --filesystem=/media com.github.alainm23.byte
Sekarang aplikasi memiliki akses ke sistem file yang disebutkan di atas saat diluncurkan dari menu sistem dan bahkan dari shell tanpa menentukan izin ( flatpak run com.github.alainm23.byte
).