如何在 Linux 中安装和使用 Flatpak

在本教程中,我们将了解什么是 Flatpak,如何在 Linux 上安装 Flatpak,以及如何使用 Flatpak 命令行用户界面安装应用程序。

内容

  1. Flatpak 简介
    1. 运行时
    2. 捆绑库
    3. 沙盒
    4. 存储库
  2. 在 Linux 上安装 Flatpak
  3. Flatpak 初学者指南
    1. 1.添加远程仓库
    2. 2. 列出遥控器
    3. 3. 安装 Flatpak 应用程序
    4. 4. 运行 Flatpak 应用程序
    5. 5. 搜索 flatpak 应用程序
    6. 6. 列出本地安装的 flatpak 应用程序和运行时
    7. 7. 列出远程应用程序和运行时
    8. 8. 更新 flatpak 应用
    9. 9. 查看 flatpak 应用程序的详细信息
    10. 10. 卸载 flatpak 应用程序
    11. 11. 移除远程仓库
    12. 12.删除未使用的运行时
    13. 13. 移除 flatpak 缓存
    14. 14.修复flatpak安装
    15. 15. 查看 flatpak 历史
    16. 16. 显示 flatpak 帮助部分
  4. 结论

Flatpak 简介

有如此多的 Linux 发行版,并且为所有这些 Linux 发行版打包应用程序是一项非常耗时且艰巨的任务。 尽管存在许多包转换器,但它们都具有有限的功能和兼容性问题。

为了克服这个问题,一种名为的应用程序包格式 折断 已由 Canonical 引入。 Snaps 最初是为 Ubuntu 操作系统开发的,但现在它被主要的 Linux 发行版采用,包括 Arch、Gentoo、 Fedora、openSUSE 等

snap 是与所有必需的库和依赖项捆绑在一起的单个二进制包。 您可以将它安装在任何 Linux 发行版上,无论其版本和架构如何。 无需为每个发行版开发单独的应用程序!

与 Snap 类似,还有一个应用程序包格式化工具叫做 平板包装. Flatpak 是一个在不同 Linux 发行版上构建、安装和运行应用程序和运行时的系统。

您现在可以构建单个 Flatpak 应用程序并将其安装在不同的 Linux 版本上。 您不必担心库和依赖项,所有内容都捆绑在一个应用程序本身中。

另一个显着的特点是我们可以在 Linux 系统中同时安装同一个应用程序的多个版本。 例如,可以在同一系统上安装 VLC 播放器版本 2.1、2.2 和 2.3。 如果您是开发人员,则可以一次测试应用程序的不同版本。

Flatpak 最初是由 亚历克斯·拉尔森 后来得到了 Red Hat、Endless Computers 和 Collabora 的认可。 它现在由一个由贡献者、志愿者和支持组织组成的独立社区积极维护。 Flatpak 框架是用 C 并根据 LGPL 执照。

运行时

每个 flatpak 应用程序都依赖于运行时才能在主机系统上正常工作。 运行时只不过是应用程序所需的一组基本依赖项(库)。

当我们使用 flatpak 命令安装应用程序时,将自动安装运行时。 运行时与发行版无关,因此它们可以在任何 Linux 发行版上运行。 多个应用程序可以使用一个运行时。

目前有三个主要的运行时可用: 自由桌面, GNOME在哪里. 这些都托管在 平枢纽 存储库。

捆绑库

运行时中不可用的库由开发人员与应用程序捆绑在一起。 库也可以是与运行时和/或修补版本的库不同的库版本。

沙盒

Flaptpak 应用程序在称为“沙盒”的隔离环境中构建和运行。 换句话说,flatpak 应用程序与主机操作系统的其余部分和其他应用程序是隔离的。

每个沙箱都包含应用程序及其运行时。 默认情况下,flatpak 应用程序只能访问其沙箱的内容。 用户必须明确授予对用户文件、网络、图形和设备的访问权限。

存储库

所有 flatpak 应用程序及其运行时都存储在一个名为“存储库”的中心位置。 平枢纽 是所有 Flatpak 应用程序的官方存储库。 我们可以使用 flatpak 命令行界面访问和安装应用程序和运行时。

在 Linux 上安装 Flatpak

Flatpak 可在流行的 Linux 发行版(如 Arch Linux、Debian、 Fedora、Gentoo、Red Hat、Linux Mint、openSUSE、Solus、Mageia 和 Ubuntu 发行版。

安装 Flatpak 拱形Linux 及其变体,如 奋进操作系统Manjaro Linux, 跑:

$ sudo pacman -S flatpak

Flatpak 在默认存储库中可用 Debian Buster 和更新的版本。 要在 Debian 上安装 Flatpak,请运行:

$ sudo apt install flatpak

如果您在 Debian 上使用 GNOME DE,请使用以下命令为 GNOME 软件安装 Flatpak 插件:

$ sudo apt install gnome-software-plugin-flatpak

Fedora, 默认安装 Flatpak。 您所要做的就是启用启用 Flathub,如下一节所述。

以防万一它由于任何原因没有安装,请运行:

$ sudo dnf install flatpak

RHEL 7, 跑:

$ sudo yum install flatpak

CentOS 7, 默认安装 Flatpak。 所以不需要设置!

从…开始 Linux 薄荷 18.3,默认安装 flatpak。 所以,不需要设置。

openSUSE 可以使用 Zypper 安装 Tumbleweed、Flatpak:

$ sudo zypper install flatpak

Ubuntu 18.10 (Cosmic Cuttlefish) 和更新的 Ubuntu 版本,使用以下命令安装 flatpak:

$ sudo apt install flatpak

在较旧的 Ubuntu 版本上,添加以下存储库并安装 Flatpak,如下所示。

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

GNOME 软件应用程序的 Flatpak 插件使得无需命令行即可安装应用程序成为可能。 要安装此插件,请运行:

$ sudo apt install gnome-software-plugin-flatpak

仅有的,使用命令安装 flatpak:

$ sudo eopkg install flatpak xdg-desktop-portal-gtk

魔法师 6 及更新版本,您可以使用 DNF 安装 Flatpak:

$ sudo dnf install flatpak    

或者,安装 urpmi,如下图:

$ sudo urpmi flatpak

流行!_OS 20.04 默认情况下安装了 Flatpak 并配置了 Flathub。 如果您使用的是 Pop!_OS 19.10 或更早版本,请运行:

$ sudo apt install flatpak

基本操作系统 5.1 更新版本带有开箱即用的 Flatpak 支持。

其他Linux发行版参考官方安装 关联.

Flatpak 初学者指南

有许多流行的应用程序,如 Gimp、Kdenlive、Steam、Spotify 和 Visual Studio 代码等,都可以作为 flatpaks 使用。 要安装 flatpak 应用程序,我们需要首先添加 flatpak 存储库(或遥控器)。

1.添加远程仓库

正如我已经提到的,应用程序和运行时存储在存储库或远程。 flatpak 的官方存储库是 平枢纽.

要在 Linux 上启用 Flathub 存储库,只需运行以下命令:

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

还有许多其他非官方的 flatpak 存储库可用。 进行快速的网络搜索以找到它们。

2. 列出遥控器

要列出所有配置的远程存储库,请运行:

$ flatpak remotes

示例输出:

Name    Options flathub system

如您所见,上面的命令列出了您在系统中添加的遥控器。 它还列出了遥控器是按用户添加还是在系统范围内添加。 就我而言,我在系统范围内添加了 flathub 存储库。

3. 安装 Flatpak 应用程序

在本节中,我们将看到如何安装 flatpak 应用程序。

要安装 Flatpak 应用程序,例如 GNOME 盒子,请运行:

$ flatpak install flathub org.gnome.Boxes

上面的命令将在系统范围内安装应用程序。

如果您不想在系统范围内安装应用程序,您还可以为每个用户安装 flatpak 应用程序,如下所示。

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

所有已安装的应用程序将存储在 $HOME/.var/app/ 地点。

$ ls $HOME/.var/app/ com.github.calo001.fondo com.github.tchx84.Flatseal org.gnome.Boxes

4. 运行 Flatpak 应用程序

您可以随时从应用程序启动器启动已安装的应用程序。 从命令行,您可以使用以下命令运行它,例如 GNOME 框:

$ flatpak run org.gnome.Boxes

Flatpak 将为所有 flatpak 应用程序添加菜单项。 因此您可以直接从菜单或应用程序启动器启动。

5. 搜索 flatpak 应用程序

要搜索应用程序:

$ flatpak search gimp

示例输出:

Name                  Description                                                                                      Application ID               Version Branch Remotes GNU Image Manipulati… Create images and edit photographs                                                               org.gimp.GIMP                2.10.20 stable flathub GIMP User Manual      GIMP User Manual                                                                                 org.gimp.GIMP.Manual         2.10    2.10   flathub Resynthesizer         Set of GIMP plug-ins that heal (in-paint), synthesize texture, theme an image, and more          …p.GIMP.Plugin.Resynthesizer 2.0.3   2-3.36 flathub GimpLensfun           GimpLensfun is a Gimp plugin to correct lens distortion using the lensfun library and database.  org.gimp.GIMP.Plugin.Lensfun 0.2.4   2-3.36 flathub Fourier               A simple GIMP plug-in to do fourier transform on your image.                                     org.gimp.GIMP.Plugin.Fourier 0.4.3   2-3.36 flathub BIMP                  Batch Image Manipulation Program, a GIMP plugin to apply a set of manipulations to an entire gr… org.gimp.GIMP.Plugin.BIMP    2.4     2-3.36 flathub LiquidRescale         LiquidRescale plugin to resize pictures non uniformly while preserving their features, i.e. avo… …p.GIMP.Plugin.LiquidRescale 0.7.2   2-3.36 flathub G'MIC                 GREYC's Magic for Image Computing                                                                org.gimp.GIMP.Plugin.GMic    2.9.2   2-3.36 flathub FocusBlur             Focus Blur plug-in crete a blurring effect similar to Depth of Field.                            ….gimp.GIMP.Plugin.FocusBlur 3.2.6   2-3.36 flathub Glimpse               Create images and edit photographs                                                               org.glimpse_editor.Glimpse   0.2.0   stable flathub Scans to PDF          Create small, searchable PDFs from scanned documents                                             com.github.unrud.djpdf       0.1.2   stable flathub

此命令将从所有遥控器返回与字符串“gimp”匹配的所有应用程序。

6. 列出本地安装的 flatpak 应用程序和运行时

要查看系统上所有已安装的 flatpak 应用程序和运行时,请运行:

$ flatpak list

示例输出:

Name                           Application ID                  Version Branch Installation Fondo                          com.github.calo001.fondo        1.3.8   stable system Flatseal                       com.github.tchx84.Flatseal      1.5.2   stable system default                        …reedesktop.Platform.GL.default         19.08  system Intel                          …eedesktop.Platform.VAAPI.Intel         19.08  system openh264                       ….freedesktop.Platform.openh264 2.1.0   2.0    system GNOME Boxes                    org.gnome.Boxes                 3.36.6  stable system GNOME Application Platform ve… org.gnome.Platform                      3.36   system Ambiance Gtk theme             org.gtk.Gtk3theme.Ambiance              3.22   system Yaru-light Gtk Theme           org.gtk.Gtk3theme.Yaru-light            3.22   system

如果要查看已安装的应用程序和运行时的列表 安装尺寸, 用 -d 旗帜。

$ flatpak list -d

示例输出:

… … … Version Branch Arch   Origin  Installation Ref                                               Active commit Latest commit Installed size … … … … 1.3.9   stable x86_64 flathub system       com.github.calo001.fondo/x86_64/stable            4755529773f0  -              89.3 MB       … … … … 1.6.2   stable x86_64 flathub system       com.github.tchx84.Flatseal/x86_64/stable          4e1efc03269e  -               2.9 MB       … …  …         19.08  x86_64 flathub system       org.freedesktop.Platform.GL.default/x86_64/19.08  f68c8e930d04  -             255.7 MB       … …  …         19.08  x86_64 flathub system       org.freedesktop.Platform.VAAPI.Intel/x86_64/19.08 19fe8e74d641  -              37.0 MB       … … … … 2.1.0   2.0    x86_64 flathub system       org.freedesktop.Platform.openh264/x86_64/2.0      73f998362a6f  -             778.2 kB       … … … … 3.36.6  stable x86_64 flathub system       org.gnome.Boxes/x86_64/stable                     98c619ed7873  -             706.9 MB       … … … …         3.36   x86_64 flathub system       org.gnome.Platform/x86_64/3.36                    d79ff93caf2d  -             934.6 MB       … … … …         3.22   x86_64 flathub system       org.gtk.Gtk3theme.Ambiance/x86_64/3.22            73fed99df212  -              16.3 MB       … … … …         3.22   x86_64 flathub system       org.gtk.Gtk3theme.Yaru-light/x86_64/3.22          2573259417d8  -             718.3 kB       … 

仅使用命令列出运行时:

$ flatpak list --runtime

示例输出:

Name                           Application ID                  Version Branch Installation Locale                         com.github.calo001.fondo.Locale         stable system default                        …reedesktop.Platform.GL.default         19.08  system Intel                          …eedesktop.Platform.VAAPI.Intel         19.08  system openh264                       ….freedesktop.Platform.openh264 2.1.0   2.0    system Locale                         org.gnome.Boxes.Locale                  stable system GNOME Application Platform ve… org.gnome.Platform                      3.36   system Ambiance Gtk theme             org.gtk.Gtk3theme.Ambiance              3.22   system Yaru-light Gtk Theme           org.gtk.Gtk3theme.Yaru-light            3.22   system

要仅查看应用程序,而不查看运行时间,请改用此命令。

$ flatpak list --app

示例输出:

Name             Application ID                  Version      Branch      Installation Fondo            com.github.calo001.fondo        1.3.8        stable      system Flatseal         com.github.tchx84.Flatseal      1.5.2        stable      system GNOME Boxes      org.gnome.Boxes                 3.36.6       stable      system

7. 列出远程应用程序和运行时

您还可以从远程存储库查看可用应用程序和运行时的列表。

使用命令列出来自所有遥控器的应用程序和运行时:

$ flatpak remote-ls

仅列出运行时:

$ flatpak remote-ls --runtime

仅列出应用程序:

$ flatpak remote-ls --app

例如,列出特定存储库中的应用程序和运行时 平面集线器, 跑:

$ flatpak remote-ls flathub

要仅列出远程存储库中的应用程序,请运行:

$ flatpak remote-ls flathub --app

8. 更新 flatpak 应用

要更新所有 flatpak 应用程序,请运行:

$ flatpak update

要更新特定应用程序,我们执行以下操作:

$ flatpak update org.gnome.Boxes

9. 查看 flatpak 应用程序的详细信息

要显示已安装应用程序的详细信息,请运行:

$ flatpak info org.gnome.Boxes

示例输出:

GNOME Boxes - Simple remote and virtual machines            ID: org.gnome.Boxes          Ref: app/org.gnome.Boxes/x86_64/stable         Arch: x86_64       Branch: stable      Version: 3.36.6      License: LGPL-2.1+       Origin: flathub   Collection: org.flathub.Stable Installation: system    Installed: 706.9 MB      Runtime: org.gnome.Platform/x86_64/3.36          Sdk: org.gnome.Sdk/x86_64/3.36        Commit: 98c619ed78736e85433bcbecd5c4392ad30d4890a71ddc909f5b4c51dfcde340       Parent: 72ec972e0ce7fdf640f478d406a8acad5f90ebd1f8c0ac330baa7ed3dd5ccd70      Subject: Build vte from git master (a8cf05d9)         Date: 2020-09-02 10:02:20 +0000

10. 卸载 flatpak 应用程序

要删除 flatpak 应用程序,请运行:

$ sudo flatpak uninstall org.gnome.Boxes

11. 移除远程仓库

要删除遥控器,例如 flathub:

$ sudo flatpak remote-delete flathub

这里, 平面集线器 是遥控器的名称。

12.删除未使用的运行时

删除依赖于特定运行时的所有应用程序后,不会自动删除运行时本身。

要删除任何已安装应用程序未使用的运行时和扩展,请运行:

$ flatpak uninstall --unused

13. 移除 flatpak 缓存

删除剩余的 flatpak 缓存 tmp 位置,运行:

$ sudo bash -c "! pgrep -x flatpak && rm -r /var/tmp/flatpak-cache-*"

如果您正在使用 systemd 作为您的默认系统管理员,您可以自动执行 flatpak 剩余缓存清理任务,如下所示。

创建一个名为的服务文件 clear_flatpak_cache.service/lib/systemd/system/ 包含以下内容的目录:

[Unit] Description=Flatpak cache cleaner  [Service] ExecStart=bash -c "! pgrep -x flatpak && rm -r /var/tmp/flatpak-cache-*"  [Install] WantedBy=multi-user.target

在启动时启动并启用此服务:

$ sudo systemctl enable --now clear_flatpak_cache

从现在开始,剩余的 flatpak 缓存文件将在启动时清除。

14.修复flatpak安装

我们可以通过修剪和重新安装无效对象来修复 flatpak 安装。

为此,请运行:

$ flatpak repair

您还可以使用每个用户和每个系统进行修复 --user--system 标志。

修复每用户安装:

$ flatpak repair --user

修复每个系统的安装:

$ flatpak repair --system

15. 查看 flatpak 历史

您可能已经安装、更新或删除了一些应用程序。 flatpak 将记录所有 flatpak 事务。

您可以查看这些日志以了解随着时间的推移对您的 Flatpak 安装进行了哪些更改。

$ flatpak history

16. 显示 flatpak 帮助部分

如需 flatpak 帮助,请运行:

$ flatpak --help

此命令将显示所有可用 flatpak 选项和子命令的列表,并带有一些说明。

结论

本 flatpak 教程简单介绍了 Flatpak,以及在 Flatpak 中使用的底层技术,例如运行时、远程、捆绑库和沙箱等。然后,还解释了如何在 Linux 发行版上安装和使用 flatpak。

  • 如何使用 Flatseal 轻松配置 Flatpak 应用程序权限
  • Linux 包管理器比较——AppImage 与 Snap 与 Flatpak

资源:

  • Flatpak 网站
  • Flathub网站
  • Flatpak GitHub 存储库

FlathubFlatpakFlatpak 命令Flatpak 教程LinuxLinux 包管理器包管理器