如何在Linux中安装和使用FlatPak

时间:2020-03-21 11:44:36  来源:igfitidea点击:

在本教程中,我们将看到什么是FlatPak,如何在Linux上安装FlatPak,然后如何使用FlatPak命令行用户界面安装应用程序。

FlatPak简介

所有Linux发行版和包装应用程序都是如此,所有这些Linux发行版都非常耗时和困难的任务。
即使存在许多包转换器,它们都具有有限的功能和兼容性问题。

为了克服这个问题,通过规范引入了一个名为Snap的应用程序包格式。

SNAPS最初为Ubuntu操作系统开发,但现在由主要的Linux发行版采用,包括Arch,Gentoo,Fedora,OpenSUSE等.ANP是一个与所有必需库和依赖关系捆绑的单个二进制包。
我们可以将其安装在任何Linux发行版上,无论其版本和架构如何。
无需为每个分发开发单独的应用程序!

类似于Snap,还有另一个名为FlatPak的应用程序包格式工具。
FLATPAK是一个系统,用于在不同的Linux发行版上构建,安装和运行应用程序和运行运行时间。
我们现在可以构建一个FlatePak应用程序并在不同的Linux版本上安装它。
我们不必担心库 和依赖项,一切都在一个应用程序本身内捆绑在一起。

另一个值得注意的功能是我们可以在Linux系统中同时安装多个版本的同一应用程序。
例如,可以在同一系统上安装VLC播放器版本2.1,2.2和2.3.
如果我们是开发人员,我们可以一次测试不同版本的应用程序。

FLOTPAK最初由Alex Larsson开发,后来由Red Hat,无尽电脑和Collabora认可。
它现在由一个独立的社区积极维护,由贡献者,志愿者和支持组织组成。
FlatPak框架是在C中编写的,并根据LGPL许可证发布。

run

每个FlatPak应用程序都依赖于运行时,以便在主机系统上正常工作。
运行时只不过是应用程序所需的一组基本依赖项(库)。
当我们使用FLATPAK命令安装应用程序时,将自动安装运行时。
运行时是分布无关的,因此他们可以在任何Linux发行版上工作。
多个应用程序可以使用单个运行时。

目前有三个主要的运行时间:Freedesktop,Gnome和KDE。
这些都托管在Flathub存储库上。

捆绑库

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

沙箱

平面普及应用程序在被称为"沙箱"的孤立环境中建造并运行。
换句话说,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开始,默认安装FLOTPAK。
所以,无需设置。

在OpenSUSE Tumbleweed上,可以使用ZYPPER安装FLOTPAK:

$sudo zypper install flatpak

在Ubuntu 18.10(宇宙墨鱼)和较新的Ubuntu版本上,使用此命令安装Flatpak:

$sudo apt install flatpak

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

$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和较新版本上,我们可以使用DNF安装FLOTPAK:

$sudo dnf install flatpak

或者,使用以下内容安装"urpmi":

$sudo urpmi flatpak

POP!_OS 20.04具有默认配置的FLANPAK和FLATHUB。
如果我们使用的是pop!_os 19.10或者早期版本,请运行:

$sudo apt install flatpak

基本OS 5.1和较新的配有FLANPAK支持的盒子。

对于其他Linux发行版,请参阅官方安装链接。

Flatpak的教程

有许多流行的应用程序,如GIMP,KDENLIVE,Steam,Spotify和Visual Studio代码等,如FlatPaks。
要安装FlatPak应用程序,我们需要首先添加FlatPak存储库(或者遥控器)。

1.添加远程存储库

正如我所提到的那样,应用程序和运行时存储在存储库或者远程中。
FlatPak的官方存储库是Flathub。

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

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

有许多其他非官方的FlatePak存储库。
快速的网络搜索找到它们。

2.列出遥控器

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

$flatpak remotes

示例输出:

Name    Options
flathub system

正如我们所看到的,上面的命令列出了系统中添加的遥控器。
它还列出了遥控器是否已添加每个用户或者系统范围。
在我的情况下,我添加了Flathub存储库系统。

3.安装FLOTPAK应用程序

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

要安装FlatPak应用程序,例如GNOME框,请运行:

$flatpak install flathub org.gnome.Boxes

上面的命令将安装系统宽。

如果我们不想安装系统范围的应用程序,我们还可以按照下面的用户安装FLOTPAK应用程序。

$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.运行FLOTPAK应用程序

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

$flatpak run org.gnome.Boxes

FlatPak将为所有FlatPak应用程序添加菜单条目。
因此,我们可以直接从菜单或者应用程序启动器启动。

5.搜索FATHPAK应用程序

要搜索应用程序:

$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       …

仅列出具有命令的runtimes:

$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.列出远程应用程序和运行时

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

要使用命令列出所有remotes的应用程序和运行时:

$flatpak remote-ls

仅列出运行时:

$flatpak remote-ls --runtime

仅列出应用程序:

$flatpak remote-ls --app

列出特定存储库的应用程序和运行时,例如flathub,运行:

$flatpak remote-ls flathub

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

$flatpak remote-ls flathub --app

8.更新FLOTPAK应用程序

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

$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.卸载FLOTPAK应用程序

要删除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剩余缓存清洁任务。

使用以下内容创建名为"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.修理FLOTPAK安装

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

为此,运行:

$flatpak repair

我们也可以使用"-User"和"--System"标志进行每用户和每个系统修复。

维修每用户安装:

$flatpak repair --user

修复每系统安装:

$flatpak repair --system

15.查看FlatPak历史

我们可能已安装一些应用程序,更新它们或者删除它们。
所有FlatPak交易都将由FlatPak记录。

我们可以查看这些日志,以了解随着时间的推移对FlatePak安装的更改。

$flatpak history

16.显示FLATPAK帮助部分

对于FlatPak帮助,运行:

$flatpak --help

此命令将显示所有可用的flatpak选项和子命令的列表。