如何在Linux中安装和使用Flatpak
在本教程中,我们将看到什么是Flatpak,如何在Linux上安装Flatpak,然后如何使用Flatpak命令行用户界面来安装应用程序。
Flatpak简介
有这么多的Linux发行版,而对于所有这些Linux发行版而言,打包应用程序都是非常耗时且困难的任务。
即使存在许多封装转换器,它们都具有有限的功能和兼容性问题。
为了克服此问题,Canonical引入了一种名为Snap的应用程序包格式。
Snaps最初是为Ubuntu操作系统开发的,但现在已被主要的Linux发行版所采用,包括Arch,Gentoo,Fedora,openSUSE等。
Snaps是与所有必需的库和依赖项捆绑在一起的单个二进制软件包。
我们可以将其安装在任何Linux发行版上,无论其版本和体系结构如何。
无需为每个发行版开发单独的应用程序!
与Snap相似,还有另一个名为Flatpak的应用程序包格式工具。
Flatpak是一个用于在不同的Linux发行版上构建,安装和运行应用程序以及运行时的系统。
现在,我们可以构建一个Flatpak应用程序并将其安装在不同的Linux版本上。
我们不必担心库和依赖项,所有内容都捆绑在一个应用程序本身中。
另一个值得注意的功能是我们可以在Linux系统中同时安装同一应用程序的多个版本。
例如,可以在同一系统上安装VLC播放器版本2.1、2.2和2.3.
如果我们是开发人员,则可以一次测试不同版本的应用程序。
Flatpak最初由Alex Larsson开发,后来被Red Hat,Endless Computers和Collabora认可。
现在由独立的社区积极维护,该社区由贡献者,志愿者和支持组织组成。
Flatpak框架是用C编写的,并根据LGPL许可发布。
运行时间
每个flatpak应用程序都依赖于运行时,以便在主机系统上正常工作。
运行时不过是应用程序所需的一组基本依赖项(库)。
当我们使用flatpak命令安装应用程序时,将自动安装运行时。
运行时与发行版无关,因此它们可以在任何Linux发行版上工作。
一个以上的应用程序可以使用一个运行时。
当前有三种主要的运行时可用:Freedesktop,GNOME和KDE。
这些都托管在Flathub存储库中。
捆绑库
开发人员将运行时中不可用的库与应用程序捆绑在一起。
库也可以是与运行时库和/或者修补版库不同的库版本。
沙箱
Flaptpak应用程序是在称为“沙盒”的隔离环境中构建和运行的。
换句话说,flatpak应用程序与主机操作系统的其余部分以及其他应用程序隔离。
每个沙箱均包含应用程序及其运行时。
Flatpak应用程序默认情况下只能访问其沙箱的内容。
用户必须明确地授予对用户文件,网络,图形和设备的访问权限。
储存库
所有Flatpak应用程序及其运行时都存储在一个名为“存储库”的中央位置。
Flathub是所有Flatpak应用程序的官方存储库。
我们可以使用flatpak命令行界面访问和安装应用程序和运行时。
在Linux上安装Flatpak
Flatpak在流行的Linux发行版的默认存储库中可用,例如Arch Linux,Debian,Fedora,Gentoo,Red Hat,Linux Mint,openSUSE,Solus,Mageia和Ubuntu发行版。
要在Arch Linux和Manjaro Linux上安装Flatpak,请运行:
$sudo pacman -S flatpak
Debian Buster和更高版本的默认存储库中提供Flatpak。
要在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上,可以使用Zypper安装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
在Solus上,使用以下命令安装flatpak:
$sudo eopkg install flatpak xdg-desktop-portal-gtk
在Mageia 6和更高版本上,可以将Flatpak与DNF一起安装:
$sudo dnf install flatpak
或者,使用'urpmi'进行安装,如下所示:
$sudo urpmi flatpak
Pop!_OS 20.04已安装Flatpak,默认情况下已配置Flathub。
如果使用的是Pop!_OS 19.10或者更早版本,请运行:
$sudo apt install flatpak
基本的OS 5.1和更高版本均提供了Flatpak支持。
对于其他Linux发行版,请参考官方安装链接。
Flatpak入门教程
有很多流行的应用程序,例如Gimp,Kdenlive,Steam,Spotify和Visual Studio代码等,都可以作为便签本使用。
要安装flatpak应用程序,我们需要首先添加flatpak存储库(或者远程数据库)。
1.添加远程存储库
正如我已经提到的,应用程序和运行时存储在存储库或者远程库中。
Flatpak的官方存储库是Flathub。
要在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, for example: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
列出特定存储库(例如flathub)中的应用程序和运行时,运行:
$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: 2017-09-02 10:02:20 +0000
10.卸载flatpak应用程序
要删除flatpak应用程序,请运行:
$sudo flatpak uninstall org.gnome.Boxes
11.删除远程存储库
要删除远程主机,例如flathub,请执行以下操作:
$sudo flatpak remote-delete flathub
其中flathub是遥控器的名称。
12.删除未使用的运行时
删除依赖于特定运行时的所有应用程序后,运行时本身将不会自动删除。
要删除任何已安装的应用程序未使用的运行时和扩展,请运行:
$flatpak uninstall --unused
13.删除flatpak缓存
要在“ tmp”位置删除剩余的flatpak缓存,请运行:
$sudo bash -c "! pgrep -x flatpak && rm -r /var/tmp/flatpak-cache-*"
如果使用“ systemd”作为默认系统管理器,则可以自动执行如下所示的flatpak剩余缓存清理任务。
在“/lib/systemd/system /”目录中创建一个名为“ clear_flatpak_cache.service”的服务文件,其内容如下:
[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选项和子命令的列表,并带有一些描述。