Bagaimana cara selalu menjalankan aplikasi flatpak dengan izin sistem file?

Aug 20 2020

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 rundan override.

Ketika saya meluncurkan aplikasi dari terminal menggunakannya flatpak run --filesystem=/media com.github.alainm23.byteberfungsi 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

2 avila Aug 25 2020 at 17:47

TL; DR

Jika aplikasi diinstal "di seluruh pengguna", tambahkan --useropsi 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 installmenginstal 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.bytesaat itu, itu akan mengeluh dan saya hanya menambahkannya sudodan 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 --userke overrideperintah 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).