在本教程中,我们将了解什么是 Flatpak,如何在 Linux 上安装 Flatpak,以及如何使用 Flatpak 命令行用户界面安装应用程序。
内容
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 包管理器包管理器