在本教程中,我们将了解什么是 Flatpak、如何在 Linux 上安装 Flatpak 以及如何使用 Flatpak 命令行用户界面安装应用程序。
Flatpak 简介
有如此多的 Linux 发行版,并且为所有这些 Linux 发行版打包应用程序是一项非常耗时且艰巨的任务。 尽管存在许多包转换器,但它们都具有有限的功能和兼容性问题。
为了克服这个问题,一种名为的应用程序包格式 折断 由 Canonical 引入。 Snaps 最初是为 Ubuntu 操作系统开发的,但现在被主要的 Linux 发行版采用,包括 Arch、Gentoo、 FedoraopenSUSE 等。
snap 是与所有必需的库和依赖项捆绑在一起的单个二进制包。 您可以将它安装在任何 Linux 发行版上,无论其版本和架构如何。 无需为每个发行版开发单独的应用程序!
与 Snap 类似,还有另一个应用程序包格式工具,称为 平板包装. Flatpak 是一个在不同 Linux 发行版上构建、安装和运行应用程序和运行时的系统。
您现在可以构建单个 Flatpak 应用程序并将其安装在不同的 Linux 版本上。 您不必担心库和依赖项,所有内容都捆绑在一个应用程序本身中。
另一个值得注意的特性是我们可以在 Linux 系统中同时安装同一个应用程序的多个版本。 例如,可以在同一系统上安装 VLC 播放器版本 2.1、2.2 和 2.3。 如果您是开发人员,您可以一次测试不同版本的应用程序。
Flatpak 最初由 亚历克斯·拉尔森 后来得到红帽、Endless Computers 和 Collabora 的认可。 它现在由一个由贡献者、志愿者和支持组织组成的独立社区积极维护。 Flatpak 框架是用 C 并在下发布 LGPL 执照。
运行时
每个 flatpak 应用程序都依赖于运行时才能在主机系统上正常工作。 运行时只不过是应用程序所需的一组基本依赖项(库)。
当我们使用 flatpak 命令安装应用程序时,将自动安装运行时。 运行时独立于发行版,因此它们可以在任何 Linux 发行版上运行。 多个应用程序可以使用一个运行时。
目前有三个主要的运行时可用: 免费桌面, 侏儒 和 KDE. 这些都托管在 平面图 存储库。
捆绑的库
开发人员将运行时中不可用的库与应用程序捆绑在一起。 库也可以是与运行时中的库和/或库的补丁版本不同的库版本。
沙盒
Flaptpak 应用程序在称为“沙盒”的隔离环境中构建和运行。 换句话说,flatpak 应用程序与主机操作系统的其余部分和其他应用程序是隔离的。
每个沙箱都包含应用程序及其运行时。 默认情况下,flatpak 应用程序只能访问其沙箱的内容。 对用户文件、网络、图形和设备的访问必须由用户明确给出。
存储库
所有 flatpak 应用程序及其运行时都存储在一个称为“存储库”的中心位置。 平面图 是所有 Flatpak 应用程序的官方存储库。 我们可以使用 flatpak 命令行界面访问和安装应用程序和运行时。
在 Linux 上安装 Flatpak
Flatpak 在流行的 Linux 发行版的默认存储库中可用,例如 Arch Linux、Debian、 Fedora、Gentoo、Red Hat、Linux Mint、openSUSE、Solus、Mageia 和 Ubuntu 发行版。
安装 Flatpak Arch Linux 及其变体 EndeavourOS 和 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 Mint 18.3, flatpak 默认安装。 因此,无需设置。
在 openSUSE Tumbleweed,Flatpak 可以使用 Zypper 安装:
$ 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 Software 应用程序的 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 Code 等,可作为 flatpak 使用。 要安装 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 应用程序,对于 example 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 应用程序
您可以随时从应用程序启动器启动已安装的应用程序。 从命令行,您可以运行它,对于 example 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
列出来自特定存储库的应用程序和运行时,例如 example 扁平化, 跑:
$ 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.删除远程存储库
要移除遥控器,对于 example 扁平化:
$ 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 vs Snap vs Flatpak
资源: