在 Linux 发行版上使用 Flatpak [完整指南]

我们在 Linux 系统中安装应用程序,一般都是打开软件中心搜索并安装它。

应用商店中没有的,我们还可以通过直接下载 DEB 或 RPM 软件包进行安装。如果都没有,可以还能从源代码构建。

现在的问题是。应用商店通常没有最新版本的应用程序,而且处理依赖项可能很烦人; DEB 或 RPM 软件包对系统依赖性比较强;从源代码构建需要繁琐的终端操作,没有一定的经验是很难完成的。

在 Linux 发行版上使用 Flatpak [完整指南]插图

对于众多的 Linux 发行版和包管理系统,为了方便,需要一个通用打包系统,这样无论您是哪个 Linux 的发行版,都可以运行该应用程序。这将如何做到呢?

Ubuntu 项目的领导者 Canonical 想到了这一点,并创建了 Snaps。还有一个独立的通用软件包称为 AppImage,您可以在其中下载应用程序并运行它而无需实际安装它。

除了 Snaps 和 AppImage 之外,还有另一个通用的包系统,称为 Flatpak。下面我来介绍如何在大多数 Linux 发行版上安装和使用 Flatpak 及其优势和缺点。

一、什么是 Flatpak?

Flatpak 是 Linux 上的应用程序框架。由于不同的 Linux 发行版更喜欢自己的包管理,Flatpak 旨在提供一个具有其他优势的跨平台解决方案。它使开发人员的工作更加容易。

单个应用程序构建可以在几乎所有的 Linux 发行版中使用,而无需对捆绑包进行任何修改。

使用 Flatpak 的优势

  • Flatpak 应用程序可以在任何 Linux 发行版上运行。
  • Flatpak 是向前兼容的,即相同的 Flatpak 应用程序可以在下一个发行版上运行。
  • 运行时依赖关系得到维护,应用程序可以使用这些依赖关系。缺少的可以作为应用程序的一部分添加。
  • 尽管 Flatpak 为应用程序的分发提供了集中式服务,但它完全支持应用程序的分散分发。
  • 提供与 Linux 发行版上现有软件中心的轻松集成。

使用 Flatpak 的缺点

  • 它不支持服务器。到目前为止,它仅适用于带有桌面环境的 Linux 发行版。
  • Flatpak 应用程序消耗的磁盘空间比使用 DEB 或 RPM 文件时通常占用的磁盘空间更多。
  • 仅仅因为它在隔离的环境中运行,您可能会错过某些程序的一些功能。例如,Flatpak 应用程序可能不支持您的自定义 GTK 主题。

二、为各种 Linux 发行版启用 Flatpak 支持

安装 Flatpak 应用程序的过程分为两步。第一个是安装 Flatpak,然后我们必须添加一个 Flatpak 存储库(这里指官方的 Flathub 库),然后我们可以从这个软件库中安装应用程序。

1、在 Ubuntu 和 Linux Mint 上安装 Flatpak

sudo apt install flatpak

2、在基于 Red Hat 和 Fedora 的 Linux 发行版上安装 Flatpak

sudo yum install flatpak

3、在 openSUSE 上安装 Flatpak

sudo zypper install flatpak

4、在 Arch Linux 上安装 Flatpak

sudo pacman -S flatpak

三、在软件中心启用 Flatpak 应用程序支持

Flatpak 应用程序可以完全通过命令行进行管理。但并不是每个人都喜欢使用命令行安装应用程序,这就是在 GNOME 软件中心启用 Flatpak 支持的重要性。

在一些发行版上,比如 Pop!_OS 20.04 ,您会发现 Flatpak 与软件中心集成在一起。所以你不需要再单独做任何事情。

但是,如果默认情况下没有集成 Flatpak ,则需要安装插件才能通过 GUI 安装 Flatpak。使用以下命令将其安装在基于 Ubuntu 的发行版中:

sudo apt install gnome-software-plugin-flatpak

打开软件商店之后,你会发现,它会自动获取 Flathub 的 Flatpak 元数据...

在 Linux 发行版上使用 Flatpak [完整指南]插图1

对于其他 Linux 发行版,请使用相应的软件包安装命令来安装 gnome-software-plugin-flatpak。安装后,重新启动软件中心或计算机。

现在,您可以从应用程序开发人员的网站或官方 Flatpak 应用程序商店 Flathub下载 .flatpakref 文件。然后双击下载的 .flatpakref 文件。它应该打开软件中心,并提供安装选项,如下图所示:

在 Linux 发行版上使用 Flatpak [完整指南]插图2

安装完成后,您可以从软件中心或应用程序菜单中找到并启动它。

四、使用 Flatpak 命令(适用于中级到专家)

现在我们已经了解了如何启用 Flatpak 支持以及如何安装 Flatpak 应用程序,我们可以继续查看用于完全控制包安装的 Flatpak 命令。本教程的这一部分是可选的,仅适用于喜欢命令行而不是 GUI 的中级到专家用户。

1、添加用于安装 Flatpak 应用程序的存储库

Flatpak 需要有存储库信息,您可以从中查找和下载应用程序。最好添加官方的 Flathub 存储库,这样您就可以访问许多 Flatpak 应用程序。

2、请使用以下命令添加 Flathub 存储库:

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

3、搜索可用的 Flatpak 应用程序:

flatpak search applicationname

应用程序名称不必精确。它将显示与搜索查询匹配的所有可能结果。

例如,运行 flatpak search libreoffice 返回 LibreOffice 稳定版本。

aaa@ubuntu-2204:~$ flatpak search libreoffice
Name           Description           Application ID                Version Branch Remotes
LibreOffice    The LibreOffice...    org.libreoffice.LibreOffice   7.6.2.1 stable flathub
aaa@ubuntu-2204:~$ 

请注意上面输出结果中的两个地方。“Application ID” 和 “Remotes”。您将需要这两个来安装应用程序。

4、安装 Flatpak 应用程序

从存储库安装 Flatpak 应用程序的通用方法是:

flatpak install <remotes> <ApplicationID>

例如,在前面的搜索命令中,你获得了应用程序 Application ID 和存储库名称 Remotes 。您可以使用此信息通过以下方式安装应用程序:

flatpak install flathub org.libreoffice.LibreOffice

输出显示:

aaa@ubuntu-2204:~$ flatpak install flathub org.libreoffice.LibreOffice
Looking for matches…

org.libreoffice.LibreOffice permissions:
    ipc                   network               fallback-x11            pulseaudio       wayland       x11      dri
    file access [1]       dbus access [2]       bus ownership [3]

    [1] host, xdg-config/fontconfig:ro, xdg-config/gtk-3.0, xdg-run/gvfsd
    [2] com.canonical.AppMenu.Registrar, org.gtk.vfs.*
    [3] org.libreoffice.LibreOfficeIpc0


        ID                                            Branch           Op           Remote            Download
 1.     org.libreoffice.LibreOffice.Locale            stable           i            flathub            < 82.9 MB (partial)
 2.     org.libreoffice.LibreOffice                   stable           i            flathub           < 315.0 MB

Proceed with these changes to the system installation? [Y/n]: 

5、远程 flatpakref 文件安装 Flatpak 应用程序

一些开发人员提供自己的存储库。您可以使用应用程序的 flatpakref 的绝对路径来进行安装。

flatpak install --from https://flathub.org/repo/appstream/com.spotify.Client.flatpakref

6、从本地 flatpakref 文件安装 Flatpak 应用程序

从 flatpakref 文件安装 Flatpak 应用程序,假设您已经下载了 net.poedit.Poedit.flatpakref 文件,该命令将如下所示:

flatpak install net.poedit.Poedit.flatpakref

7、运行 Flatpak 应用程序

要运行 Flatpak 应用程序,如果您安装了spotify,您可以使用以下命令:

flatpak run com.spotify.Client

8、显示系统上安装的所有 Flatpak 应用程序

flatpak list

显示结果:

aaa@ubuntu-2204:~$ flatpak list
Name                                           Application ID                               Version                 Branch              Installation
Google Chrome                                  com.google.Chrome                            118.0.5993.70-1         stable              system
Freedesktop Platform                           org.freedesktop.Platform                     22.08.16                22.08               system
Mesa                                           org.freedesktop.Platform.GL.default          23.1.8                  22.08               system
Mesa (Extra)                                   org.freedesktop.Platform.GL.default          23.1.8                  22.08-extra         system
ffmpeg-full                                    org.freedesktop.Platform.ffmpeg-full                                 22.08               system
openh264                                       org.freedesktop.Platform.openh264            2.1.0                   2.2.0               system
openh264                                       org.freedesktop.Platform.openh264            2.1.0                   2.3.0               system
GNOME Application Platform version 43          org.gnome.Platform                                                   43                  system
GNOME Application Platform version 44          org.gnome.Platform                                                   44                  system
Yaru Gtk Theme                                 org.gtk.Gtk3theme.Yaru                                               3.22                system
Parabolic                                      org.nickvision.tubeconverter                 2023.9.0                stable              system
Remmina                                        org.remmina.Remmina                          1.4.33                  stable              system
aaa@ubuntu-2204:~$ 

9、一次更新所有 Flatpak 应用程序

您可以使用以下命令更新所有可以更新的 Flatpak 软件包:

flatpak update

10、删除 Flatpak 软件包:

flatpak uninstall

11、通过删除未使用的 Flatpak 运行时来释放空间

Flatpak 应用程序和运行时(runtime)会占用大量磁盘空间。因为在设计上,Flatpak 的可执行文件结合了运行时。尽管运行时可以在相关应用程序之间共享,但许多未使用的剩余运行时可能会占用你的磁盘空间。

明智的做法是清理系统并不时释放空间。您可以使用以下命令删除未使用的 Flatpak 运行时:

flatpak uninstall --unused

上面的命令列出了未使用的运行时,并为您提供了删除所有运行时的选项。

12、修复 Flatpak 安装错误

如果您由于互联网连接不稳定或系统关闭而导致 Flatpak 安装不完整,则会出现错误。更新 Flatpak 存储库通常可以解决此问题。

flatpak update -v

五、总结

启用 Flatpak 支持当然可以提供对更多软件的访问。Flathub 网站提供了一种简单的方法来查找这些 Flatpak 应用程序。

官网地址:https://flathub.org/zh-Hans

Flatpak 不仅解决了 Linux 用户之间的跨平台应用程序安装问题,而且还节省了为不同发行版开发单独捆绑包的工作量。

单个软件包可以在各种 Linux 发行版上使用,维护超级容易。

不过,与 Snap 相比,Flatpak 稍微复杂一些。在我看来,安装应用程序时,依赖应用程序 ID 而不是应用程序名称是一种烦恼。我也很惊讶 Flatpak 应用程序的安装和删除不需要 sudo 权限。

标签

发表评论