Flatpak是什麼?它是Linux的一種軟體(套件)打包格式,可以減少軟體安裝的複雜度,統一所有發行版的安裝指令,再也不用考慮個別發行版間的依賴問題。此外還用沙盒機制提供更好的安全性,並將應用程式設定檔統一存放在固定目錄下。
提供Flatpak軟體的商店「Flathub」已上架多款熱門應用程式,開源與專有軟體皆有,例如Google Chrome、Microsoft Teams、Steam、LibreOffice、Blender、GIMP,不論是哪個Linux發行版都能統一下載到最新版的軟體。
大多數Linux發行版已支援Flatpak技術,沒內建的話用指令裝一下就可以了。
這篇文章將會介紹如何在你的Linux系統上使用Flatpak安裝軟體,以及解決相關的權限和儲存問題。
1. 如何在Linux發行版安裝Flatpak
- 請到Flatpak官網查詢各大Linux發行版的安裝方法,例如Ubuntu只需執行以下指令就能安裝Flatpak套件:
|
|
- 裝好還要加入Flathub的套件庫。
Flathub會建議將套件庫加入到系統:
|
|
但是,以上指令會將Flatpak加到system,變成安裝應用程式需要sudo密碼。針對不想每次裝應用程式都打密碼的使用者,可以加上--user
給一般使用者加入套件庫:
|
|
這樣一般使用者就能免密碼安裝應用程式,且Flatpak只會安裝到該名使用者的家目錄。解除安裝應用程式亦不需要sudo。
- 做完以上措施後,重開機後就能用Flatpak安裝軟體。
2. Flatpak相關指令
更多指令請看官方文件。
指令 | 用途 |
---|---|
flatpak search [應用程式名稱] | 搜尋應用程式 |
flatpak install [應用程式名稱] | 安裝應用程式 |
flatpak install [.flatpakref] | 從flatpakref檔案安裝應用程式 |
flatpak run [應用程式名稱] | 執行應用程式 |
flatpak uninstall [應用程式名稱] | 移除應用程式 |
flatpak uninstall [應用程式名稱] --delete-data | 移除應用程式並刪除資料 |
flatpak uninstall --unused | 移除用不到的依賴套件 |
flatpak list | 列出安裝的軟體 |
flatpak override | 覆寫Flatpak應用程式設定 |
flatpak permission-reset [應用程式名稱] | 重設應用程式權限 |
flatpak update | 更新應用程式 |
flatpak remotes | 列出遠端軟體庫 |
flatpak kill [應用程式名稱] | 終止應用程式執行 |
3. 如何安裝Flatpak應用程式
3.1. 安裝與解除安裝
Flathub是蒐羅最多Flatpak應用程式的網站,是混雜開源與專有軟體的儲存庫。另外開發者可以自己經營Flatpak儲存庫,例如Fcitx5有提供測試版儲存庫、Fedora Silverblue有全開源的儲存庫等等,但一般使用者只要用Flathub來源的應用程式就夠了。
那我們要怎麼安裝在Flathub看到的應用程式呢?
以Mozilla Firefox為例,在Flathub頁面往下滑,貼上頁面所顯示的指令即可。
|
|
嫌指令太長,你也可以改用下一節討論的圖形化前端(應用商店)安裝。
你可能會發現Flatpak應用程式要下載的檔案比一般用套件管理員裝的還要大許多,這是正常的,我在這篇有另外討論Flatpak安裝應用程式的優缺點。
應用程式安裝後就會出現在應用程式列表,使用起來跟一般應用程式沒兩樣。
要從終端機啟動Flatpak應用程式,請使用flatpak run
指令,並且要打出完整Flatpak應用程式名稱。
|
|
Flatpak跟一般應用程式一樣,可以另外加入啟動引數
|
|
要使用環境變數,用flatpak override
指令
|
|
欲解除安裝Flatpak應用程式,使用flatpak remove
指令。注意還要加上--delete-data
才會在解除安裝的時候一併刪除該程式的設定檔。
|
|
3.2. Flatpak應用程式安裝路徑
Flatpak應用程式資料位於~/.var/app/<應用程式名稱>
目錄,這裡也是各個應用程式設定檔的統一存放位置。像MPV、VIM這類需要撰寫設定檔的應用程式,就是將設定檔丟到這裡。
上面我們提到要從終端機執行Firefox,需要用flatpak run org.mozilla.firefox
指令,但若其他應用程式是直接呼叫firefox
來開啟瀏覽器呢?
這時請將Flatpak二進位檔的安裝路徑/var/lib/flatpak/exports/bin
加到~/.bashrc
|
|
再視需要建立軟連結或alias
|
|
4. 安裝Flatpak應用商店前端
除了從Flathub網頁複製指令外,也可以使用桌面環境的應用程式商店搜尋、下載Flatpak應用程式。
應用程式商店讓使用者免打指令安裝程式,例如GNOME Software和KDE Discover。這些應用商店還有加入使用者評分機制。
KDE Discover預設支援Flathub,GNOME Software則是要另外安裝gnome-software-plugin-flatpak
的系統套件才會顯示Flathub上的應用程式。
在應用商店瀏覽的時候應會顯示Flathub來源,如下圖KDE Discover的畫面。
5. 用Flatseal管理Flatpak應用程式權限
借助Flatseal這款圖形化的應用程式就可方便管理Flatpak程式的權限。該應用程式其實也是用Flatpak打包,可於Flathub取得。
開啟後就會看到系統安裝的Flatpak應用程式,使用者可以個別給應用程式設定「允許存取所有硬體裝置」、「使用虛擬化」、「允許存取其他硬碟」等權限。
例如Flatpak版的Firefox無法存取使用者家目錄以外硬碟的檔案,你可以在這裡開放特定目錄給Firefox存取。
順帶一提,KDE 5.27以上版本已將Flatseal的一部分功能整合至系統設定 → 應用程式的界面。
6. 自動更新Flatpak應用程式
如果隔很久才手動更新Flatpak,可能會要下載大量資料。在網路速度許可的情況下,可以利用systemd timer,每日自動檢查更新Flatpak應用程式,每日一小點一小點的更新。
openSUSE Tumbleweed已內建此systemd timer。
- 新增服務
|
|
- 填入以下內容
|
|
- 建立timer
|
|
- 填入以下內容
|
|
- 啟用服務
|
|