标签 Flatpak 下的文章

目前,我们都在使用 Linux 发行版的官方软件包管理器来安装所需的软件包。

在 Linux 中,它做得很好,没有任何问题。(它不打折扣地很好的完成了它应该做的工作)

但在一些方面它也有一些限制,所以会让我们考虑其他替代解决方案来解决。

是的,默认情况下,我们不能从发行版官方软件包管理器获取到最新版本的软件包,因为这些软件包是在构建当前 OS 版本时构建的。它们只会提供安全更新,直到下一个主要版本发布。

那么,这种情况有什么解决办法吗?是的,我们有多种解决方案,而且我们大多数人已经开始使用其中的一些了。

有些什么呢,它们有什么好处?

使用上面的仓库,我们将获得最新的软件包。这些软件包通常都得到了很好的维护,还有大多数社区的推荐。但这些只是建议,可能并不总是安全的。

近年来,出现了一下通用软件包封装格式,并且得到了广泛的应用。

  • Flatpak:它是独立于发行版的包格式,主要贡献者是 Fedora 项目团队。大多数主要的 Linux 发行版都采用了 Flatpak 框架。
  • Snaps:Snappy 是一种通用的软件包封装格式,最初由 Canonical 为 Ubuntu 手机及其操作系统设计和构建的。后来,更多的发行版都接纳了它。
  • AppImage:AppImage 是一种可移植的包格式,可以在不安装和不需要 root 权限的情况下运行。

我们之前已经介绍过 Snap 包管理器和包封装格式。今天我们将讨论 Flatpak 包封装格式。

什么是 Flatpak?

Flatpak(以前称为 X Desktop Group 或 xdg-app)是一个软件实用程序。它提供了一种通用的包封装格式,可以在任何 Linux 发行版中使用。

它提供了一个沙箱(隔离的)环境来运行应用程序,不会影响其他应用程序和发行版核心软件包。我们还可以安装并运行不同版本的软件包。

Flatpak 的一个缺点是不像 Snap 和 AppImage 那样支持服务器操作系统,它只在少数桌面环境下工作。

比如说,如果你想在系统上运行两个版本的 php,那么你可以轻松安装并按照你的意愿运行。

这就是现在通用包封装格式非常有名的地方。

如何在 Linux 中安装 Flatpak?

大多数 Linux 发行版官方仓库都提供 Flatpak 软件包。因此,可以使用它们来进行安装。

对于 Fedora 系统,使用 DNF 命令 来安装 flatpak。

$ sudo dnf install flatpak

对于 Debian/Ubuntu 系统,使用 APT-GET 命令APT 命令 来安装 flatpak。

$ sudo apt install flatpak

对于较旧的 Ubuntu 版本:

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

对于基于 Arch Linux 的系统,使用 Pacman 命令 来安装 flatpak。

$ sudo pacman -S flatpak

对于 RHEL/CentOS 系统,使用 YUM 命令 来安装 flatpak。

$ sudo yum install flatpak

对于 openSUSE Leap 系统,使用 Zypper 命令 来安装 flatpak。

$ sudo zypper install flatpak

如何在 Linux 上启用 Flathub 支持?

Flathub 网站是一个应用程序商店,你可以在其中找到 flatpak 软件包。它是一个中央仓库,所有的 flatpak 应用程序都可供用户使用。

运行以下命令在 Linux 上启用 Flathub 支持:

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

为 GNOME 桌面环境安装 Software Flatpak 插件。

$ sudo apt install gnome-software-plugin-flatpak

此外,如果你使用的是 GNOME 桌面环境,则可以启用 GNOME 仓库。它包含所有 GNOME 核心应用程序。

$ wget https://sdk.gnome.org/keys/gnome-sdk.gpg
$ sudo flatpak remote-add --gpg-import=gnome-sdk.gpg --if-not-exists gnome-apps https://sdk.gnome.org/repo-apps/

如何列出已配置的 flakpak 仓库?

如果要查看系统上已配置的 flatpak 仓库列表,运行以下命令:

$ flatpak remotes
Name       Options
flathub    system
gnome-apps system

如何列出已配置仓库中的可用软件包?

如果要查看已配置仓库中的可用软件包的列表(它将显示所有软件包,如应用程序和运行环境),运行以下命令:

$ flatpak remote-ls | head -10

org.freedesktop.GlxInfo gnome-apps
org.gnome.Books gnome-apps
org.gnome.Builder   gnome-apps
org.gnome.Calculator    gnome-apps
org.gnome.Calendar  gnome-apps
org.gnome.Characters    gnome-apps
org.gnome.Devhelp   gnome-apps
org.gnome.Dictionary    gnome-apps
org.gnome.Documents gnome-apps
org.gnome.Epiphany  gnome-apps

仅列出应用程序:

$ flatpak remote-ls --app

列出特定的仓库应用程序:

$ flatpak remote-ls gnome-apps

如何从 flatpak 安装包?

运行以下命令从 flatpak 仓库安装软件包:

$ sudo flatpak install flathub com.github.muriloventuroso.easyssh

Required runtime for com.github.muriloventuroso.easyssh/x86_64/stable (runtime/org.gnome.Platform/x86_64/3.30) found in remote flathub
Do you want to install it? [y/n]: y
Installing in system:
org.gnome.Platform/x86_64/3.30                          flathub 4e93789f42ac
org.gnome.Platform.Locale/x86_64/3.30                   flathub 6abf9c0e2b72
org.freedesktop.Platform.html5-codecs/x86_64/18.08      flathub d6abde36c0be
com.github.muriloventuroso.easyssh/x86_64/stable        flathub 337db43043d2
  permissions: ipc, network, wayland, x11, dri
  file access: home, xdg-run/dconf, ~/.config/dconf:ro
  dbus access: ca.desrt.dconf
com.github.muriloventuroso.easyssh.Locale/x86_64/stable flathub af837356b222
Is this ok [y/n]: y
Installing: org.gnome.Platform/x86_64/3.30 from flathub
[####################] 1 metadata, 14908 content objects fetched; 228018 KiB transferred in 364 seconds
Now at 4e93789f42ac.
Installing: org.gnome.Platform.Locale/x86_64/3.30 from flathub
[####################] 4 metadata, 1 content objects fetched; 16 KiB transferred in 2 seconds
Now at 6abf9c0e2b72.
Installing: org.freedesktop.Platform.html5-codecs/x86_64/18.08 from flathub
[####################] 26 metadata, 131 content objects fetched; 2737 KiB transferred in 8 seconds
Now at d6abde36c0be.
Installing: com.github.muriloventuroso.easyssh/x86_64/stable from flathub
[####################] 191 metadata, 3633 content objects fetched; 24857 KiB transferred in 117 seconds
Now at 337db43043d2.
Installing: com.github.muriloventuroso.easyssh.Locale/x86_64/stable from flathub
[####################] 3 metadata, 1 content objects fetched; 14 KiB transferred in 2 seconds
Now at af837356b222.

所有已安装的应用程序都将放在以下位置:

$ ls /var/lib/flatpak/app/
com.github.muriloventuroso.easyssh

如何运行已安装的应用程序?

运行以下命令以启动所需的应用程序,确保替换为你的应用程序名称:

$ flatpak run com.github.muriloventuroso.easyssh

如何查看已安装的应用程序?

运行以下命令来查看已安装的应用程序:

$ flatpak list
Ref                                                Options
com.github.muriloventuroso.easyssh/x86_64/stable   system,current
org.freedesktop.Platform.html5-codecs/x86_64/18.08 system,runtime
org.gnome.Platform/x86_64/3.30                     system,runtime

如何查看有关已安装应用程序的详细信息?

运行以下命令以查看有关已安装应用程序的详细信息:

$ flatpak info com.github.muriloventuroso.easyssh

Ref: app/com.github.muriloventuroso.easyssh/x86_64/stable
ID: com.github.muriloventuroso.easyssh
Arch: x86_64
Branch: stable
Origin: flathub
Collection ID: org.flathub.Stable
Date: 2019-01-08 13:36:32 +0000
Subject: Update com.github.muriloventuroso.easyssh.json (cd35819c)
Commit: 337db43043d282c74d14a9caecdc780464b5e526b4626215d534d38b0935049f
Parent: 6e49096146f675db6ecc0ce7c5347b4b4f049b21d83a6cc4d01ff3f27c707cb6
Location: /var/lib/flatpak/app/com.github.muriloventuroso.easyssh/x86_64/stable/337db43043d282c74d14a9caecdc780464b5e526b4626215d534d38b0935049f
Installed size: 100.0 MB
Runtime: org.gnome.Platform/x86_64/3.30
Sdk: org.gnome.Sdk/x86_64/3.30

如何更新已安装的应用程序?

运行以下命令将已安装的应用程序更新到最新版本:

$ flatpak update

对于特定应用程序,使用以下格式:

$ flatpak update com.github.muriloventuroso.easyssh

如何移除已安装的应用程序?

运行以下命令来移除已安装的应用程序:

$ sudo flatpak uninstall com.github.muriloventuroso.easyssh

进入 man 页面以获取更多细节和选项:

$ flatpak --help

via: https://www.2daygeek.com/how-to-install-and-enable-flatpak-support-on-linux/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:MjSeven 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

一些支持 OpenGL 并打包为 Flatpak 的应用和游戏无法使用专有 Nvidia 驱动启动。本文将介绍如何在不安装开源驱动(Nouveau)的情况下启动这些 Flatpak 应用或游戏。

这有个例子。我在我的 Ubuntu 18.04 桌面上使用专有的 Nvidia 驱动程序 (nvidia-driver-390),当我尝试启动以 Flatpak 形式安装的最新版本 Krita 4.1 (构建了 OpenGL 支持)时,显示了如下错误:

$ /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=krita --file-forwarding org.kde.krita
Gtk-Message: Failed to load module "canberra-gtk-module"
Gtk-Message: Failed to load module "canberra-gtk-module"
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Could not initialize GLX

Winepak 游戏(以 Flatpak 方式打包的绑定了 Wine 的 Windows 游戏)似乎也受到了这个问题的影响,这个问题从 2016 年出现至今。

要修复使用 OpenGL 和专有 Nvidia 图形驱动时无法启动的 Flatpak 游戏和应用的问题,你需要为已安装的专有驱动安装一个运行时环境。以下是步骤。

1、如果尚未添加 FlatHub 仓库,请添加它。你可以在此处找到针对 Linux 发行版的说明。

2、现在,你需要确定系统上安装的专有 Nvidia 驱动的确切版本。

这一步取决于你使用的 Linux 发行版,我无法涵盖所有​​情况。下面的说明是面向 Ubuntu(以及 Ubuntu 风格的版本),但希望你可以自己弄清楚系统上安装的 Nvidia 驱动版本。

要在 Ubuntu 中执行此操作,请打开 “软件与更新”,切换到 “附加驱动” 选项卡并记下 Nvidia 驱动包的名称。

比如,你可以看到我的是 “nvidia-driver-390”:

这里还没完成。我们只是找到了 Nvidia 驱动的主要版本,但我们还需要知道次要版本。要获得我们下一步所需的确切 Nvidia 驱动版本,请运行此命令(应该适用于任何基于 Debian 的 Linux 发行版,如 Ubuntu、Linux Mint 等):

apt-cache policy NVIDIA-PACKAGE-NAME

这里的 “NVIDIA-PACKAGE-NAME” 是 “软件与更新” 中列出的 Nvidia 驱动包名称。例如,要查看 “nvidia-driver-390” 包的确切安装版本,请运行以下命令:

$ apt-cache policy nvidia-driver-390
nvidia-driver-390:
  Installed: 390.48-0ubuntu3
  Candidate: 390.48-0ubuntu3
  Version table:
 *** 390.48-0ubuntu3 500
        500 http://ro.archive.ubuntu.com/ubuntu bionic/restricted amd64 Packages
        100 /var/lib/dpkg/status

在这个命令的输出中,查找 “Installed” 部分并记下版本号(不包括 “-0ubuntu3” 之类)。现在我们知道了已安装的 Nvidia 驱动的确切版本(我例子中的是 “390.48”)。记住它,因为下一步我们需要。

3、最后,你可以从 FlatHub 为你已安装的专有 Nvidia 图形驱动安装运行时环境。

要列出 FlatHub 上所有可用的 Nvidia 运行时包,你可以使用以下命令:

flatpak remote-ls flathub | grep nvidia

幸运地是 FlatHub 上提供这个 Nvidia 驱动的运行时环境。你现在可以使用以下命令继续安装运行时:

针对 64 位系统:

flatpak install flathub org.freedesktop.Platform.GL.nvidia-MAJORVERSION-MINORVERSION

将 “MAJORVERSION” 替换为 Nvidia 驱动的主要版本(在上面的示例中为 390),将 “MINORVERSION” 替换为次要版本(步骤2,我例子中的为 48)。

例如,要为 Nvidia 图形驱动版本 390.48 安装运行时,你必须使用以下命令:

flatpak install flathub org.freedesktop.Platform.GL.nvidia-390-48

对于 32 位系统(或能够在 64 位上运行 32 位的应用或游戏),使用以下命令安装 32 位运行时:

flatpak install flathub org.freedesktop.Platform.GL32.nvidia-MAJORVERSION-MINORVERSION

再说一次,将 “MAJORVERSION” 替换为 Nvidia 驱动的主要版本(在上面的示例中为 390),将 “MINORVERSION” 替换为次要版本(步骤2,我例子中的为 48)。

比如,要为 Nvidia 图形驱动版本 390.48 安装 32 位运行时,你需要使用以下命令:

flatpak install flathub org.freedesktop.Platform.GL32.nvidia-390-48

以上就是你要运行支持 OpenGL 的 Flatpak 的应用或游戏的方法。


via: https://www.linuxuprising.com/2018/06/how-to-get-flatpak-apps-and-games-built.html

作者:Logix 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

以前,我们介绍 Ubuntu 推出的 Snaps。Snaps 是由 Canonical 公司为 Ubuntu 开发的,并随后移植到其他的 Linux 发行版,如 Arch、Gentoo、Fedora 等等。由于一个 snap 包中含有软件的二进制文件和其所需的所有依赖和库,所以可以在无视软件版本、在任意 Linux 发行版上安装软件。和 Snaps 类似,还有一个名为 Flatpak 的工具。也许你已经知道,为不同的 Linux 发行版打包并分发应用是一件多么费时又复杂的工作,因为不同的 Linux 发行版的库不同,库的版本也不同。现在,Flatpak 作为分发桌面应用的新框架可以让开发者完全摆脱这些负担。开发者只需构建一个 Flatpak app 就可以在多种发行版上安装使用。这真是又酷又棒!

用户也完全不用担心库和依赖的问题了,所有的东西都和 app 打包在了一起。更重要的是 Flatpak app 们都自带沙箱,而且与宿主操作系统的其他部分隔离。对了,Flatpak 还有一个很棒的特性,它允许用户在同一个系统中安装同一应用的多个版本,例如 VLC 播放器的 2.1 版、2.2 版、2.3 版。这使开发者测试同一个软件的多个版本变得更加方便。

在本文中,我们将指导你如何在 GNU/Linux 中安装 Flatpak。

安装 Flatpak

Flatpak 可以在大多数的主流 Linux 发行版上安装使用,如 Arch Linux、Debian、Fedora、Gentoo、Red Hat、Linux Mint、openSUSE、Solus、Mageia 还有 Ubuntu。

在 Arch Linux 上,使用这一条命令来安装 Flatpak:

$ sudo pacman -S flatpak

对于 Debian 用户,Flatpak 被收录进 Stretch 或之后版本的默认软件源中。要安装 Flatpak,直接执行:

$ sudo apt install flatpak

对于 Fedora 用户,Flatpak 是发行版默认安装的软件。你可以直接跳过这一步。

如果因为某种原因没有安装的话,可以执行:

$ sudo dnf install flatpak

对于 RHEL 7 用户,安装 Flatpak 的命令为:

$ sudo yum install flatpak

如果你在使用 Linux Mint 18.3,那么 Flatpat 也随系统默认安装,所以跳过这一步。

在 openSUSE Tumbleweed 中,使用 Zypper 包管理来安装 Flatpak:

$ sudo zypper install flatpak

而 Ubuntu 需要添加下面的软件源再安装 Flatpak,命令如下:

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

Gnome 提供了一个 Flatpak 插件,安装它就可以使用图形界面来安装 Flatpak app 了。插件的安装命令为:

$ sudo apt install gnome-software-plugin-flatpak

如果你是用发行版没有在上述的说明里,请你参考官方安装指南

开始使用 Flatpak

有不少流行应用都支持 Flatpak 安装,如 Gimp、Kdenlive、Steam、Spotify、Visual Sudio Code 等。

下面让我来一起学习 flatpak 的基本操作命令。

首先,我们需要添加远程仓库。

添加软件仓库

添加 Flathub 仓库:

Flathub 是一个包含了几乎所有 flatpak 应用的仓库。运行这条命令来启用它:

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

对于流行应用来说,Flathub 已经可以满足需求。如果你想试试 GNOME 应用的话,可以添加 GNOME 的仓库。

添加 GNOME 仓库:

GNOME 仓库包括了所有的 GNOME 核心应用,它提供了两种版本: 稳定版 stable 每日构建版 nightly

使用下面的命令来添加 GNOME 稳定版仓库:

$ wget https://sdk.gnome.org/keys/gnome-sdk.gpg
$ sudo flatpak remote-add --gpg-import=gnome-sdk.gpg --if-not-exists gnome-apps https://sdk.gnome.org/repo-apps/

需要注意的是,GNOME 稳定版仓库中的应用需要 3.20 版本的 org.gnome.Platform 运行时环境

安装稳定版运行时环境,请执行:

$ sudo flatpak remote-add --gpg-import=gnome-sdk.gpg gnome https://sdk.gnome.org/repo/

如果想使用每日构建版的 GNOME 仓库,使用如下的命令:

$ wget https://sdk.gnome.org/nightly/keys/nightly.gpg
$ sudo flatpak remote-add --gpg-import=nightly.gpg --if-not-exists gnome-nightly-apps https://sdk.gnome.org/nightly/repo-apps/

同样,每日构建版的 GNOME 仓库也需要 org.gnome.Platform 运行时环境的每日构建版本

执行下面的命令安装每日构建版的运行时环境:

$ sudo flatpak remote-add --gpg-import=nightly.gpg gnome-nightly https://sdk.gnome.org/nightly/repo/

查看软件仓库

要查看已经添加的软件仓库,执行下面的命令:

$ flatpak remotes
Name Options
flathub system
gnome system
gnome-apps system
gnome-nightly system
gnome-nightly-apps system

如你所见,上述命令会列出你添加到系统中的软件仓库。此外,执行结果还表明了软件仓库的配置是 用户级 per-user 还是 系统级 system-wide

删除软件仓库

要删除软件仓库,例如 flathub,用这条命令:

$ sudo flatpak remote-delete flathub

这里的 flathub 是软件仓库的名字。

安装 Flatpak 应用

这一节,我们将学习如何安装 flatpak 应用。

要安装一个应用,只要一条命令就能完成:

$ sudo flatpak install flathub com.spotify.Client

所有的稳定版 GNOME 软件仓库中的应用,都使用“stable”作为版本名。

例如,想从稳定版 GNOME 软件仓库中安装稳定版 Evince,就执行:

$ sudo flatpak install gnome-apps org.gnome.Evince stable

所有的每日构建版 GNOME 仓库中的应用,都使用“master”作为版本名。

例如,要从每日构建版 GNOME 软件仓库中安装 gedit 的每次构建版本,就执行:

$ sudo flatpak install gnome-nightly-apps org.gnome.gedit master

如果不希望应用安装在 系统级 system-wide ,而只安装在 用户级 per-user ,那么你可以这样安装软件:

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

所有的应用都会被存储在 $HOME/.var/app/ 目录下.

$ ls $HOME/.var/app/
com.spotify.Client

执行 Flatpak 应用

你可以直接使用 应用启动器 application launcher 来运行已安装的 Flatpak 应用。如果你想从命令行启动的话,以 Spotify 为例,执行下面的命令:

$ flatpak run com.spotify.Client

列出已安装的 Flatpak 应用

要查看已安装的应用程序和运行时环境,执行:

$ flatpak list

想只查看已安装的应用,那就用这条命令:

$ flatpak list --app

如果想查询已添加的软件仓库中的可安装程序和可安装的运行时环境,使用命令:

$ flatpak remote-ls

只列出可安装的应用程序的命令是:

$ flatpak remote-ls --app

查询指定远程仓库中的所有可安装的应用程序和运行时环境,这里以 gnome-apps 为例,执行命令:

$ flatpak remote-ls gnome-apps

只列出可安装的应用程序,这里以 flathub 为例:

$ flatpak remote-ls flathub --app

更新应用程序

更新所有的 Flatpak 应用程序,执行:

$ flatpak update

更新指定的 Flatpak 应用程序,执行:

$ flatpak update com.spotify.Client

获取应用详情

执行下面的命令来查看已安装应用程序的详细信息:

$ flatpak info io.github.mmstick.FontFinder

输出样例:

Ref: app/io.github.mmstick.FontFinder/x86_64/stable
ID: io.github.mmstick.FontFinder
Arch: x86_64
Branch: stable
Origin: flathub
Date: 2018-04-11 15:10:31 +0000
Subject: Workaround appstream issues (391ef7f5)
Commit: 07164e84148c9fc8b0a2a263c8a468a5355b89061b43e32d95008fc5dc4988f4
Parent: dbff9150fce9fdfbc53d27e82965010805f16491ec7aa1aa76bf24ec1882d683
Location: /var/lib/flatpak/app/io.github.mmstick.FontFinder/x86_64/stable/07164e84148c9fc8b0a2a263c8a468a5355b89061b43e32d95008fc5dc4988f4
Installed size: 2.5 MB
Runtime: org.gnome.Platform/x86_64/3.28

删除应用程序

要删除一个 Flatpak 应用程序,这里以 spotify 为例,执行:

$ sudo flatpak uninstall com.spotify.Client

如果你需要更多信息,可以参考 Flatpak 的帮助。

$ flatpak --help

到此,希望你对 Flatpak 有了一些基础了解。

如果你觉得这篇指南有些帮助,请在你的社交媒体上分享它来支持我们。

稍后还有更多精彩内容,敬请期待~


via: https://www.ostechnix.com/flatpak-new-framework-desktop-applications-linux/

作者:SK 选题:lujun9972 译者:wwhio 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

LibreOffice on Flathub

LibreOffice 现在可以从集中化的 Flatpak 应用商店 Flathub 进行安装。

它的到来使任何运行现代 Linux 发行版的人都能只点击一两次即可安装 LibreOffice 的最新稳定版本,而无需搜索 PPA,纠缠于 tar 包或等待发行版将其打包。

自去年 8 月份 LibreOffice 5.2 发布以来,LibreOffice Flatpak 已经可供用户下载和安装。

这里“新”的是指发行方法。 文档基金会 Document Foundation 选择使用 Flathub 而不是专门的服务器来发布更新。

这对于终端用户来说是一个很好的消息,因为这意味着不需要在新安装时担心仓库,但对于 Flatpak 的倡议者来说也是一个好消息:LibreOffice 是开源软件里最流行的生产力套件。它对该格式和应用商店的支持肯定会受到热烈的欢迎。

在撰写本文时,你可以从 Flathub 安装 LibreOffice 5.4.2。新的稳定版本将在发布时添加。

在 Ubuntu 上启用 Flathub

要在 Ubuntu 上启动并运行 Flatpak,首先必须安装它:

sudo apt install flatpak gnome-software-plugin-flatpak

为了能够从 Flathub 安装应用程序,你需要添加 Flathub 远程服务器:

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

这就行了。只需注销并重新登录(以便 Ubuntu Software 刷新其缓存),之后你应该能够通过 Ubuntu Software 看到 Flathub 上的任何 Flatpak 程序了。

Fedora、Arch 和 Linux Mint 18.3 用户已经安装了 Flatpak,随时可以开箱即用。Mint 甚至预启用了 Flathub remote。

在本例中,搜索 “LibreOffice” 并在结果中找到下面有 Flathub 提示的结果。(请记住,Ubuntu 已经调整了客户端,来将 Snap 程序显示在最上面,所以你可能需要向下滚动列表来查看它)。

从 Flathub 安装 LibreOffice

从 flatpakref 中安装 Flatpak 程序有一个 bug,所以如果上面的方法不起作用,你也可以使用命令行从 Flathub 中安装 Flathub 程序。

Flathub 网站列出了安装每个程序所需的命令。切换到“命令行”选项卡来查看它们。

Flathub 上更多的应用

如果你经常看这个网站,你就会知道我喜欢 Flathub。这是我最喜欢的一些应用(Corebird、Parlatype、GNOME MPV、Peek、Audacity、GIMP 等)的家园。我无需等待就能获得这些应用程序的最新、稳定版本(加上它们需要的所有依赖)。

而且,在我 twiiter 上发布一周左右后,大多数 Flatpak 应用现在看起来有很棒 GTK 主题 - 不再需要临时方案了!


via: http://www.omgubuntu.co.uk/2017/11/libreoffice-now-available-flathub-flatpak-app-store

作者:JOEY SNEDDON 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

让我们回顾一下 Linux 社区最新的愿景——推动去中心化的应用来解决发行版的碎片化。

继上周的文章:“Snap、Flatpak 这种通吃所有发行版的打包方式真的有用吗?” 之后,一系列新观点浮出水面,其中可能包含关于这样应用是否有用的重要信息。

缺点

就这个话题在这里的评论,一个叫 Till 的 Gentoo 使用者,对于上一次我们未能完全解释的问题给出了一些新的观点。

对于上一次我们选择仅仅称之为膨胀的的东西,Till 从另一方面做了剖析膨胀将来的发展,这可以帮助我们更好的理解它的组成和其影响。

这些被称之为“捆绑应用”的应用程序能够工作在所有发行版上的机制是——将它依赖的库都包含在它们的应用软件之中,Till 说:

“捆绑应用装载了大量的并不被应用开发者所维护的软件。如果其中的某个函数库被发现了一个安全问题而需要更新的话,你得为每一个独立的应用程序安装更新来确保你的系统安全。”

本质上,Till 提出了一个重要的安全问题。但是它并不仅仅与安全有关系,它还关系到许多方面,比如说系统维护、原子更新等等。

此外,如果我们进一步假设:依赖的开发者们也许会合作,将他们的软件与使用它的应用程序一起发布(一种理想状况),但这将导致整个平台的开发整体放缓。

另一个将会导致的问题是透明的依赖关系变得模糊,就是说,如果你想知道一个应用程序捆绑了哪些依赖关系,你必须依靠开发者发布这些数据。

或者就像 Till 说的:“比如说像某某包是否已经包含了更新的某函数库这样的问题将会是你每天需要面对的。”

与之相反,对于 Linux 现行的标准的包管理方法(包括二进制包和源码包),你能够很容易的注意到哪些函数库已经在系统中更新了。

并且,你也可以很轻松的知道其它哪些应用使用了这个函数库,这就将你从繁琐的单独检查每一个应用程序的工作中解救了出来。

其他可能由膨胀导致的缺点包括:更大的包体积(每一个应用程序捆绑了依赖),更高的内存占用(没有共享函数库),并且,少了一个包过滤机制来防止恶意软件:发行版的包维护者也充当了一个在开发者和用户之间的过滤者,他保障了用户获得高质量的软件。

而在捆绑应用中就不再是这种情况了。

最后一点,Till 声称,尽管在某些情况下很有用,但是在大多数情况下,捆绑应用程序将弱化自由软件在发行版中的地位(专有软件供应商将被能够发布他们的软件而不用把它放到公共软件仓库中)。

除此之外,它引出了许多其他问题。很多问题都可以简单归结到开发人员身上。

优点

相比之下,另一个名叫 Sven 的人的评论试图反驳目前普遍反对使用捆绑应用程序的观点,从而证明和支持使用它。

“浪费空间?”——Sven 声称在当今世界我们有很多其他事情在浪费磁盘空间,比如电影存储在硬盘上、本地安装等等……

最终,这些事情浪费的空间要远远多于仅仅“ 100 MB 而你每天都要使用的程序。……因此浪费空间的说法实在很荒谬。”

“浪费运行内存?”——主要的观点有:

  • 共享库浪费的内存要远远少于程序的运行时数据所占用的
  • 而今运行内存已经很便宜了。

“安全梦魇”——不是每个应用程序的运行真正的要注重安全

而且,许多应用程序甚至从来没有过任何安全更新,除非在“滚动更新的发行版”。

除了 Sven 这种从实用出发的观点以外,Till 其实也指出了捆绑应用在一些情况下也有着其优点:

  • 专有软件的供应商想要保持他们的代码游离于公共仓库之外将更加容易。
  • 没有被你的发行版打包进去的小众应用程序将变得更加可行。
  • 在没有 Beta 包的二进制发行版中测试应用将变得简单。
  • 将用户从复杂的依赖关系中解放出来。

最后的思考

虽然关于此问题有着不同的想法,但是有一个被大家共同接受的观点是:捆绑应用对于填补 Linux 生态系统有着其独到的作用。

虽然如此,它的定位,不论是主流的还是边缘的,都变得愈发清晰,至少理论上是这样。

想要尽可能优化其系统的用户,在大多数情况下应该要避免使用捆绑应用。

而讲究易用性、尽可能在维护系统上少费劲的用户,可能应该会感觉这种新应用十分舒爽。


via: http://www.iwillfolo.com/linux-applications-that-works-on-all-distributions-are-they-any-good/

作者:Editorials 译者:Chao-zhi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

对新一代的打包格式开始渗透到 Linux 生态系统中的深入观察

最近我们听到越来越多的有关于 Ubuntu 的 Snap 包和由 Red Hat 员工 Alexander Larsson 创造的 Flatpak (曾经叫做 xdg-app)的消息。

这两种下一代打包方法在本质上拥有相同的目标和特点:即不依赖于第三方系统功能库的独立包装。

这种 Linux 新技术方向似乎自然会让人脑海中浮现这样的问题:独立包的优点/缺点是什么?这是否让我们拥有更好的 Linux 系统?其背后的动机是什么?

为了回答这些问题,让我们先深入了解一下 Snap 和 Flatpak。

动机

根据 FlatpakSnap 的声明,背后的主要动机是使同一版本的应用程序能够运行在多个 Linux 发行版。

“从一开始它的主要目标是允许相同的应用程序运行在各种 Linux 发行版和操作系统上。” —— Flatpak
“……‘snap’ 通用 Linux 包格式,使简单的二进制包能够完美的、安全的运行在任何 Linux 桌面、服务器、云和设备上。” —— Snap

说得更具体一点,站在 Snap 和 Flatpak (以下称之为 S&F)背后的人认为,Linux 平台存在碎片化的问题。

这个问题导致了开发者们需要做许多不必要的工作来使他的软件能够运行在各种不同的发行版上,这影响了整个平台的前进。

所以,作为 Linux 发行版(Ubuntu 和 Red Hat)的领导者,他们希望消除这个障碍,推动平台发展。

但是,是否是更多的个人收益刺激了 S&F 的开发?

个人收益?

虽然没有任何官方声明,但是试想一下,如果能够创造这种可能会被大多数发行版(即便不是全部)所采用的打包方式,那么这个项目的领导者将可能成为一个能够决定 Linux 大船航向的重要人物。

优势

这种独立包的好处多多,并且取决于不同的因素。

这些因素基本上可以归为两类:

用户角度

+ 从 Liunx 用户的观点来看:Snap 和 Flatpak 带来了将任何软件包(软件或应用)安装在用户使用的任何发行版上的可能性。

例如你在使用一个不是很流行的发行版,由于开发工作的缺乏,它的软件仓库只有很稀少的包。现在,通过 S&F 你就可以显著的增加包的数量,这是一个多么美好的事情。

+ 同样,对于使用流行的发行版的用户,即使该发行版的软件仓库上有很多的包,他也可以在不改变它现有的功能库的同时安装一个新的包。

比方说, 一个 Debian 的用户想要安装一个 “测试分支” 的包,但是他又不想将他的整个系统变成测试版(来让该包运行在更新的功能库上)。现在,他就可以简单的想安装哪个版本就安装哪个版本,而不需要考虑库的问题。

对于持后者观点的人,可能基本上都是使用源文件编译他们的包的人,然而,除非你使用类似 Gentoo 这样基于源代码的发行版,否则大多数用户将从头编译视为是一个恶心到吐的事情。

+ 高级用户,或者称之为 “拥有安全意识的用户” 可能会觉得更容易接受这种类型的包,只要它们来自可靠来源,这种包倾向于提供另一层隔离,因为它们通常是与系统包想隔离的。

* 不论是 Snap 还是 Flatpak 都在不断努力增强它们的安全性,通常他们都使用 “沙盒化” 来隔离,以防止它们可能携带病毒感染整个系统,就像微软 Windows 系统中的 .exe 程序一样。(关于微软和 S&F 后面还会谈到)

开发者角度

与普通用户相比,对于开发者来说,开发 S&F 包的优点可能更加清楚。这一点已经在上一节有所提示。

尽管如此,这些优点有:

+ S&F 通过统一开发的过程,将多发行版的开发变得简单了起来。对于需要将他的应用运行在多个发行版的开发者来说,这大大的减少了他们的工作量。

++ 因此,开发者能够更容易的使他的应用运行在更多的发行版上。

+ S&F 允许开发者私自发布他的包,不需要依靠发行版维护者在每一个/每一次发行版中发布他的包。

++ 通过上述方法,开发者可以不依赖发行版而直接获取到用户安装和卸载其软件的统计数据。

++ 同样是通过上述方法,开发者可以更好的直接与用户互动,而不需要通过中间媒介,比如发行版这种中间媒介。

缺点

膨胀。就是这么简单。Flatpak 和 Snap 并不是凭空变出来它的依赖关系。相反,它是通过将依赖关系预构建在其中来代替使用系统中的依赖关系。

就像谚语说的:“山不来就我,我就去就山”。

之前提到安全意识强的用户会喜欢 S&F 提供的额外的一层隔离,只要该应用来自一个受信任的来源。但是从另外一个角度看,对这方面了解较少的用户,可能会从一个不靠谱的地方弄来一个包含恶意软件的包从而导致危害。

上面提到的观点可以说是有很有意义的,虽说今天的流行方法,像 PPA、overlay 等也可能是来自不受信任的来源。

但是,S&F 包更加增加这个风险,因为恶意软件开发者只需要开发一个版本就可以感染各种发行版。相反,如果没有 S&F,恶意软件的开发者就需要创建不同的版本以适应不同的发行版。

原来微软一直是正确的吗?

考虑到上面提到的,很显然,在大多数情况下,使用 S&F 包的优点超过缺点。

至少对于二进制发行版的用户,或者重点不是轻量级的发行版的用户来说是这样的。

这促使我问出这个问题,可能微软一直是正确的吗?如果是的,那么当 S&F 变成 Linux 的标准后,你还会一如既往的使用 Linux 或者类 Unix 系统吗?

很显然,时间会是这个问题的最好答案。

不过,我认为,即使不完全正确,但是微软有些地方也是值得赞扬的,并且以我的观点来看,所有这些方式在 Linux 上都立马能用也确实是一个亮点。


via: http://www.iwillfolo.com/ubuntus-snap-red-hats-flatpack-and-is-one-fits-all-linux-packages-useful/

作者:Liron 译者:Chao-zhi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出