Flatpak 新手指南

2019-01-20 11:31:00

以前,我們介紹 Ubuntu 推出的 Snaps。Snaps 是由 Canonical 公司為 Ubuntu 開發的,並隨後移植到其他的 Linux 發行版,如 Arch、Gentoo、Fedora 等等。由於一個 snap 包中含有軟體的二進位制檔案和其所需的所有依賴和庫,所以可以在無視軟體版本、在任意 Linux 發行版上安裝軟體。和 Snaps 類似,還有一個名為 Flatpak 的工具。也許你已經知道,為不同的 Linux 發行版打包並分發應用是一件多麼費時又複雜的工作,因為不同的 Linux 發行版的庫不同,庫的版本也不同。現在,Flatpak 作為分發桌面應用的新框架可以讓開發者完全擺脫這些負擔。開發者只需構建一個 Flatpak app 就可以在多種發行版上安裝使用。這真是又酷又棒!

使用者也完全不用擔心庫和依賴的問題了,所有的東西都和 app 打包在了一起。更重要的是 Flatpak app 們都自帶沙箱,而且與宿主作業系統的其他部分隔離。對了,Flatpak 還有一個很棒的特性,它允許使用者在同一個系統中安裝同一應用的多個版本,例如 VLC 播放器的 2.1 版、2.2 版、2.3 版。這使開發者測試同一個軟體的多個版本變得更加方便。

在本文中,我們將指導你如何在 GNU/Linux 中安裝 Flatpak。

安裝 Flatpak

Flatpak 可以在大多數的主流 Linux 發行版上安裝使用,如 Arch Linux、Debian、Fedora、Gentoo、Red Hat、Linux Mint、openSUSE、Solus、Mageia 還有 Ubuntu。

在 Arch Linux 上,使用這一條命令來安裝 Flatpak:

$ sudo pacman -S flatpak

對於 Debian 使用者,Flatpak 被收錄進 Stretch 或之後版本的預設軟體源中。要安裝 Flatpak,直接執行:

$ sudo apt install flatpak

對於 Fedora 使用者,Flatpak 是發行版預設安裝的軟體。你可以直接跳過這一步。

如果因為某種原因沒有安裝的話,可以執行:

$ sudo dnf install flatpak

對於 RHEL 7 使用者,安裝 Flatpak 的命令為:

$ sudo yum install flatpak

如果你在使用 Linux Mint 18.3,那麼 Flatpat 也隨系統預設安裝,所以跳過這一步。

在 openSUSE Tumbleweed 中,使用 Zypper 包管理來安裝 Flatpak:

$ sudo zypper install flatpak

而 Ubuntu 需要新增下面的軟體源再安裝 Flatpak,命令如下:

$ sudo add-apt-repository ppa:alexlarsson/flatpak$ sudo apt update$ sudo apt install flatpak

Gnome 提供了一個 Flatpak 外掛,安裝它就可以使用圖形介面來安裝 Flatpak app 了。外掛的安裝命令為:

$ sudo apt install gnome-software-plugin-flatpak

如果你是用發行版沒有在上述的說明裡,請你參考官方安裝指南

開始使用 Flatpak

有不少流行應用都支援 Flatpak 安裝,如 Gimp、Kdenlive、Steam、Spotify、Visual Sudio Code 等。

下面讓我來一起學習 flatpak 的基本操作命令。

首先,我們需要新增遠端倉庫。

新增軟體倉庫

新增 Flathub 倉庫:

Flathub 是一個包含了幾乎所有 flatpak 應用的倉庫。執行這條命令來啟用它:

$ sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

對於流行應用來說,Flathub 已經可以滿足需求。如果你想試試 GNOME 應用的話,可以新增 GNOME 的倉庫。

新增 GNOME 倉庫:

GNOME 倉庫包括了所有的 GNOME 核心應用,它提供了兩種版本:穩定版stable每日構建版nightly

使用下面的命令來新增 GNOME 穩定版倉庫:

$ wget https://sdk.gnome.org/keys/gnome-sdk.gpg$ sudo flatpak remote-add --gpg-import=gnome-sdk.gpg --if-not-exists gnome-apps https://sdk.gnome.org/repo-apps/

需要注意的是,GNOME 穩定版倉庫中的應用需要 3.20 版本的 org.gnome.Platform 執行時環境

安裝穩定版執行時環境,請執行:

$ sudo flatpak remote-add --gpg-import=gnome-sdk.gpg gnome https://sdk.gnome.org/repo/

如果想使用每日構建版的 GNOME 倉庫,使用如下的命令:

$ wget https://sdk.gnome.org/nightly/keys/nightly.gpg$ sudo flatpak remote-add --gpg-import=nightly.gpg --if-not-exists gnome-nightly-apps https://sdk.gnome.org/nightly/repo-apps/

同樣,每日構建版的 GNOME 倉庫也需要 org.gnome.Platform 執行時環境的每日構建版本

執行下面的命令安裝每日構建版的執行時環境:

$ sudo flatpak remote-add --gpg-import=nightly.gpg gnome-nightly https://sdk.gnome.org/nightly/repo/

檢視軟體倉庫

要檢視已經新增的軟體倉庫,執行下面的命令:

$ flatpak remotesName Optionsflathub systemgnome systemgnome-apps systemgnome-nightly systemgnome-nightly-apps system

如你所見,上述命令會列出你新增到系統中的軟體倉庫。此外,執行結果還表明了軟體倉庫的設定是使用者級per-user還是系統級system-wide

刪除軟體倉庫

要刪除軟體倉庫,例如 flathub,用這條命令:

$ sudo flatpak remote-delete flathub

這裡的 flathub 是軟體倉庫的名字。

安裝 Flatpak 應用

這一節,我們將學習如何安裝 flatpak 應用。

要安裝一個應用,只要一條命令就能完成:

$ sudo flatpak install flathub com.spotify.Client

所有的穩定版 GNOME 軟體倉庫中的應用,都使用“stable”作為版本名。

例如,想從穩定版 GNOME 軟體倉庫中安裝穩定版 Evince,就執行:

$ sudo flatpak install gnome-apps org.gnome.Evince stable

所有的每日構建版 GNOME 倉庫中的應用,都使用“master”作為版本名。

例如,要從每日構建版 GNOME 軟體倉庫中安裝 gedit 的每次構建版本,就執行:

$ sudo flatpak install gnome-nightly-apps org.gnome.gedit master

如果不希望應用安裝在系統級system-wide,而只安裝在使用者級per-user,那麼你可以這樣安裝軟體:

$ flatpak install --user <name-of-app>

所有的應用都會被儲存在 $HOME/.var/app/ 目錄下.

$ ls $HOME/.var/app/com.spotify.Client

執行 Flatpak 應用

你可以直接使用應用啟動器application launcher來執行已安裝的 Flatpak 應用。如果你想從命令列啟動的話,以 Spotify 為例,執行下面的命令:

$ flatpak run com.spotify.Client

列出已安裝的 Flatpak 應用

要檢視已安裝的應用程式和執行時環境,執行:

$ flatpak list

想只檢視已安裝的應用,那就用這條命令:

$ flatpak list --app

如果想查詢已新增的軟體倉庫中的可安裝程式和可安裝的執行時環境,使用命令:

$ flatpak remote-ls

只列出可安裝的應用程式的命令是:

$ flatpak remote-ls --app

查詢指定遠端倉庫中的所有可安裝的應用程式和執行時環境,這裡以 gnome-apps 為例,執行命令:

$ flatpak remote-ls gnome-apps

只列出可安裝的應用程式,這裡以 flathub 為例:

$ flatpak remote-ls flathub --app

更新應用程式

更新所有的 Flatpak 應用程式,執行:

$ flatpak update

更新指定的 Flatpak 應用程式,執行:

$ flatpak update com.spotify.Client

獲取應用詳情

執行下面的命令來檢視已安裝應用程式的詳細資訊:

$ flatpak info io.github.mmstick.FontFinder

輸出樣例:

Ref: app/io.github.mmstick.FontFinder/x86_64/stableID: io.github.mmstick.FontFinderArch: x86_64Branch: stableOrigin: flathubDate: 2018-04-11 15:10:31 +0000Subject: Workaround appstream issues (391ef7f5)Commit: 07164e84148c9fc8b0a2a263c8a468a5355b89061b43e32d95008fc5dc4988f4Parent: dbff9150fce9fdfbc53d27e82965010805f16491ec7aa1aa76bf24ec1882d683Location: /var/lib/flatpak/app/io.github.mmstick.FontFinder/x86_64/stable/07164e84148c9fc8b0a2a263c8a468a5355b89061b43e32d95008fc5dc4988f4Installed size: 2.5 MBRuntime: org.gnome.Platform/x86_64/3.28

刪除應用程式

要刪除一個 Flatpak 應用程式,這裡以 spotify 為例,執行:

$ sudo flatpak uninstall com.spotify.Client

如果你需要更多資訊,可以參考 Flatpak 的幫助。

$ flatpak --help

到此,希望你對 Flatpak 有了一些基礎了解。

如果你覺得這篇指南有些幫助,請在你的社交媒體上分享它來支援我們。

稍後還有更多精彩內容,敬請期待~