How-To:Linux 使用 Flatpak 安裝及管理應用程式

操作環境:

  • Fedora 38

 

Flatpak 是 Linux 生態中,試圖針對桌面應用程式,簡化發佈、安裝及管理過程的其中一項解決方案。不同於 apt、dnf 這類的套件管理工具,需要依賴維護者為特定的 Linux 發行版環境,打造出對應的安裝套件,並且解決其相依性問題。Flatpak 能夠較為便利地,同時支援更多種不同的發行版。並且有一套專屬的封裝方式,能夠在不干涉系統環境的情況下,滿足應用程式的相依需求。

 

本文雖然是以 Fedora 發行版作為操作範例,然而實際上更有可能會需要以 Flatpak 作為軟體安裝途徑的,會是諸如 RHEL(包含其複製品,如 AlmaLinuxRocky Linux)這類有著較長生命週期的發行版。因為此類發行版的產品方向及維護政策,使得套件庫收納的多樣性較為侷限。並且所提供的桌面應用程式也經常不是保持在最新的狀態,而更多是某種變化性較低的穩定版本。所以使用者有可能會因著桌面環境的需求,更加傾向利用 Flatpak 作為應用程式的安裝來源。

 

倘若同時有使用 NVIDIA 官方的顯示驅動程式,則 Flatpak 應用程式的執行環境不會直接沿用系統上隨附於驅動程式一併安裝的函式庫(例如 xorg-x11-drv-nvidia-libs)。而是會伴隨著欲安裝的應用程式,另外下載及安裝一份函式庫(ID 為 org.freedesktop.Platform.GL.nvidia-<版本>)在 Flatpak 執行環境中。所以一旦系統上安裝的驅動程式版本有更新,則 Flatpak 也要記得執行相應的更新檢查,將依賴的函式庫與驅動程式版本保持一致,否則 Flatpak 應用程式可能會無法正常運作。

 

1. 安裝 Flatpak

Flatpak 是 Fedora 預設即提供的軟體管理工具之一,倘若系統中尚未存在此工具,則可單純地使用 dnf 指令安裝起來:

  • sudo dnf install flatpak

 

2. Flatpak 基本操作

首先是新增並啟用 Flathub 這個最主要的軟體來源:

  • sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
  • sudo flatpak remote-modify --enable flathub

 

Flatpak 是藉由輸入應用程式 ID ,來安裝或移除指定的應用程式。關於獲取應用程式 ID 的方式,除了可以在 Flathub 網站上用軟體名稱搜尋外,其實用搜尋引擎去找,也是蠻有效的作法。使用例如「<軟體名稱> flatpak」這樣的關鍵字,應該很容易就可以查詢到以下形式的安裝指令:

  • flatpak install <遠端來源> <應用程式 ID>

 

舉例來說,可以使用以下指令來安裝 Frozen Bubble 這款遊戲。遠端來源為 flathub,應用程式 ID 則為 org.frozen_bubble.frozen-bubble:

  • flatpak install flathub org.frozen_bubble.frozen-bubble

 

透過 Flatpak 安裝好的軟體可以直接在桌面環境的應用程式清單中找到,或者命令行的執行方式如下:

  • flatpak run <應用程式 ID>

 

由於應用程式 ID 往往有點長,雖然也可以使用 Tab 鍵搜尋及補全,但倘若有在命令行下啟動應用程式的需求,或許另外設定 Bash 別名(alias)來產生短指令,會是更加便利的作法。至於移除軟體的指令如下(remove 也可以替換爲 uninstall,兩者是互通的):

  • flatpak remove <應用程式 ID>

 

移除所有未使用的相依元件:

  • flatpak remove --unused

 

顯示已安裝的應用程式及連帶安裝的相依元件:

  • flatpak list

 

倘若欲僅僅顯示已安裝的應用程式,則加上「--app」選項:

  • flatpak list --app

 

以及檢查軟體更新的指令為:

  • flatpak update

 

3. 其它參考資料