目前,我們都在使用 Linux 發行版的官方軟體包管理器來安裝所需的軟體包。
在 Linux 中,它做得很好,沒有任何問題。(它不打折扣地很好的完成了它應該做的工作)
但在一些方面它也有一些限制,所以會讓我們考慮其他替代解決方案來解決。
是的,預設情況下,我們不能從發行版官方軟體包管理器獲取到最新版本的軟體包,因為這些軟體包是在構建當前 OS 版本時構建的。它們只會提供安全更新,直到下一個主要版本釋出。
那麼,這種情況有什麼解決辦法嗎?是的,我們有多種解決方案,而且我們大多數人已經開始使用其中的一些了。
有些什麼呢,它們有什麼好處?
使用上面的倉庫,我們將獲得最新的軟體包。這些軟體包通常都得到了很好的維護,還有大多數社群的推薦。但這些只是建議,可能並不總是安全的。
近年來,出現了一下通用軟體包封裝格式,並且得到了廣泛的應用。
我們之前已經介紹過 Snap 包管理器和包封裝格式[7]。今天我們將討論 Flatpak 包封裝格式。
什麼是 Flatpak?
Flatpak(以前稱為 X Desktop Group 或 xdg-app)是一個軟體實用程式。它提供了一種通用的包封裝格式,可以在任何 Linux 發行版中使用。
它提供了一個沙箱(隔離的)環境來執行應用程式,不會影響其他應用程式和發行版核心軟體包。我們還可以安裝並執行不同版本的軟體包。
Flatpak 的一個缺點是不像 Snap 和 AppImage 那樣支援伺服器作業系統,它只在少數桌面環境下工作。
比如說,如果你想在系統上執行兩個版本的 php,那麼你可以輕鬆安裝並按照你的意願執行。
這就是現在通用包封裝格式非常有名的地方。
如何在 Linux 中安裝 Flatpak?
大多數 Linux 發行版官方倉庫都提供 Flatpak 軟體包。因此,可以使用它們來進行安裝。
對於 Fedora 系統,使用 DNF 命令[8] 來安裝 flatpak。
-
$ sudo dnf install flatpak
對於 Debian/Ubuntu 系統,使用 APT-GET 命令[9] 或 APT 命令[10] 來安裝 flatpak。
-
$ sudo apt install flatpak
對於較舊的 Ubuntu 版本:
-
$ sudo add-apt-repository ppa:alexlarsson/flatpak
-
$ sudo apt update
-
$ sudo apt install flatpak
對於基於 Arch Linux 的系統,使用 Pacman 命令[11] 來安裝 flatpak。
-
$ sudo pacman -S flatpak
對於 RHEL/CentOS 系統,使用 YUM 命令[12] 來安裝 flatpak。
-
$ sudo yum install flatpak
對於 openSUSE Leap 系統,使用 Zypper 命令[13] 來安裝 flatpak。
-
$ sudo zypper install flatpak
如何在 Linux 上啟用 Flathub 支援?
Flathub 網站是一個應用程式商店,你可以在其中找到 flatpak 軟體包。它是一個中央倉庫,所有的 flatpak 應用程式都可供使用者使用。
執行以下命令在 Linux 上啟用 Flathub 支援:
-
$ sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
為 GNOME 桌面環境安裝 Software Flatpak 外掛。
-
$ sudo apt install gnome-software-plugin-flatpak
此外,如果你使用的是 GNOME 桌面環境,則可以啟用 GNOME 倉庫。它包含所有 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/
如何列出已配置的 flakpak 倉庫?
如果要檢視系統上已配置的 flatpak 倉庫串列,執行以下命令:
-
$ flatpak remotes
-
Name Options
-
flathub system
-
gnome-apps system
如何列出已配置倉庫中的可用軟體包?
如果要檢視已配置倉庫中的可用軟體包的串列(它將顯示所有軟體包,如應用程式和執行環境),執行以下命令:
-
$ flatpak remote-ls | head -10
-
-
org.freedesktop.GlxInfo gnome-apps
-
org.gnome.Books gnome-apps
-
org.gnome.Builder gnome-apps
-
org.gnome.Calculator gnome-apps
-
org.gnome.Calendar gnome-apps
-
org.gnome.Characters gnome-apps
-
org.gnome.Devhelp gnome-apps
-
org.gnome.Dictionary gnome-apps
-
org.gnome.Documents gnome-apps
-
org.gnome.Epiphany gnome-apps
僅列出應用程式:
-
$ flatpak remote-ls --app
列出特定的倉庫應用程式:
-
$ flatpak remote-ls gnome-apps
如何從 flatpak 安裝包?
執行以下命令從 flatpak 倉庫安裝軟體包:
-
$ sudo flatpak install flathub com.github.muriloventuroso.easyssh
-
-
Required runtime for com.github.muriloventuroso.easyssh/x86_64/stable (runtime/org.gnome.Platform/x86_64/3.30) found in remote flathub
-
Do you want to install it? [y/n]: y
-
Installing in system:
-
org.gnome.Platform/x86_64/3.30 flathub 4e93789f42ac
-
org.gnome.Platform.Locale/x86_64/3.30 flathub 6abf9c0e2b72
-
org.freedesktop.Platform.html5-codecs/x86_64/18.08 flathub d6abde36c0be
-
com.github.muriloventuroso.easyssh/x86_64/stable flathub 337db43043d2
-
permissions: ipc, network, wayland, x11, dri
-
file access: home, xdg-run/dconf, ~/.config/dconf:ro
-
dbus access: ca.desrt.dconf
-
com.github.muriloventuroso.easyssh.Locale/x86_64/stable flathub af837356b222
-
Is this ok [y/n]: y
-
Installing: org.gnome.Platform/x86_64/3.30 from flathub
-
[####################] 1 metadata, 14908 content objects fetched; 228018 KiB transferred in 364 seconds
-
Now at 4e93789f42ac.
-
Installing: org.gnome.Platform.Locale/x86_64/3.30 from flathub
-
[####################] 4 metadata, 1 content objects fetched; 16 KiB transferred in 2 seconds
-
Now at 6abf9c0e2b72.
-
Installing: org.freedesktop.Platform.html5-codecs/x86_64/18.08 from flathub
-
[####################] 26 metadata, 131 content objects fetched; 2737 KiB transferred in 8 seconds
-
Now at d6abde36c0be.
-
Installing: com.github.muriloventuroso.easyssh/x86_64/stable from flathub
-
[####################] 191 metadata, 3633 content objects fetched; 24857 KiB transferred in 117 seconds
-
Now at 337db43043d2.
-
Installing: com.github.muriloventuroso.easyssh.Locale/x86_64/stable from flathub
-
[####################] 3 metadata, 1 content objects fetched; 14 KiB transferred in 2 seconds
-
Now at af837356b222.
所有已安裝的應用程式都將放在以下位置:
-
$ ls /var/lib/flatpak/app/
-
com.github.muriloventuroso.easyssh
如何執行已安裝的應用程式?
執行以下命令以啟動所需的應用程式,確保替換為你的應用程式名稱:
-
$ flatpak run com.github.muriloventuroso.easyssh
如何檢視已安裝的應用程式?
執行以下命令來檢視已安裝的應用程式:
-
$ flatpak list
-
Ref Options
-
com.github.muriloventuroso.easyssh/x86_64/stable system,current
-
org.freedesktop.Platform.html5-codecs/x86_64/18.08 system,runtime
-
org.gnome.Platform/x86_64/3.30 system,runtime
如何檢視有關已安裝應用程式的詳細資訊?
執行以下命令以檢視有關已安裝應用程式的詳細資訊:
-
$ flatpak info com.github.muriloventuroso.easyssh
-
-
Ref: app/com.github.muriloventuroso.easyssh/x86_64/stable
-
ID: com.github.muriloventuroso.easyssh
-
Arch: x86_64
-
Branch: stable
-
Origin: flathub
-
Collection ID: org.flathub.Stable
-
Date: 2019-01-08 13:36:32 +0000
-
Subject: Update com.github.muriloventuroso.easyssh.json (cd35819c)
-
Commit: 337db43043d282c74d14a9caecdc780464b5e526b4626215d534d38b0935049f
-
Parent: 6e49096146f675db6ecc0ce7c5347b4b4f049b21d83a6cc4d01ff3f27c707cb6
-
Location: /var/lib/flatpak/app/com.github.muriloventuroso.easyssh/x86_64/stable/337db43043d282c74d14a9caecdc780464b5e526b4626215d534d38b0935049f
-
Installed size: 100.0 MB
-
Runtime: org.gnome.Platform/x86_64/3.30
-
Sdk: org.gnome.Sdk/x86_64/3.30
如何更新已安裝的應用程式?
執行以下命令將已安裝的應用程式更新到最新版本:
-
$ flatpak update
對於特定應用程式,使用以下格式:
-
$ flatpak update com.github.muriloventuroso.easyssh
如何移除已安裝的應用程式?
執行以下命令來移除已安裝的應用程式:
-
$ sudo flatpak uninstall com.github.muriloventuroso.easyssh
進入 man 頁面以獲取更多細節和選項:
-
$ flatpak --help
朋友會在“發現-看一看”看到你“在看”的內容