2024年12月27日 星期五

Linux 通用的應用程序管理 : Snap and Flatpak

曾几何时,在 Linux 操作系统上,要安装一個应用程序是一项挑战。

当我第一次开始使用 Linux 时,所有的应用程序都必须通过源代码d來安装。要安装 A,你必须安装 B,但是要安装 B,你必须安装 C,而要安装 C,你必须安装 D。等等,等等。这些所謂 dependencies,使得安裝應用程序變得非常之複雜。

之后,當 dpkg 和 rpm 出現後,我們可以通过二进制文件,安装应用程序,程序变得稍微容易了一些。然後,真正的变化還是来自 apt 和 yum (最终被 dnf 取代) 的创造。这些程序管理器,能够轻松地处理 dependencies。

但是还有一个兼容性的问题。

问题是: 当开发人员开創一个 Linux 軟件项目时,他们必须决定,是否要为所有 Linux 发行版、所有桌面环境、和所有窗口管理器,开創该软件。


这样的考慮,可能会变得无穷无尽,这就是为什么一个软件可能只适用于一个发行版,而不是所有发行版的原因。試想象一下,如果要为 Linux 世界中的每一个组合,开发一个应用程序,需要花费多少时间。


这就成為了创建通用包管理器的重大原因。

通用软件包 (Snaps or Flatpaks) 是一个包含所有必要依赖项 (dependencies) 的应用程序,并且不与托管平台的库交互。在某些情况下,通用软件包还会自动更新,比通过标准方式安装的应用程序更安全。

There are two main universal package managers, Snap and Flatpak.

是什么让 Snap 和 Flatpak 软件包如此特别?

开发 Snap 和 Flatpak 的原因之一就是为了消除传统包管理器的依赖性问题。Snap 和 Flatpak 的软件包,是包含软件包所需的所有软件,及所有依赖项。

因此,当你通过 Snap 或 Flatpak 來安装某个软件时,你不必担心安装其依赖项,因为 Snap 或 Flatpak 包已经为你解决了这个问题。


Snap 和 Flatpak 的区别:

 

Snap

Flatpak

Canonical 创建/维护

Red Hat 创造

提供予 desktops and/or servers.

提供予 desktops.

启动时间较慢

启动时间较快

有些应用程序作为 Snap 软件包执行得更好

有些作为 Flatpaks 软件包执行得更好

可以安装在许多 Linux 发行版上

可以安装在许多 Linux 发行版上

Snap 的核心是开源的,但是后端是私有的

Flatpak 完全是开源的

Snap 仅限于 Canonical Snap Store

Flatpak 是去中心化的

Snap packages 会自动更新

Flatpak packages 须手动更新


为什么 Snap 比 Flatpak 好?

Snaps 比 Flatpaks 更容易安装、维护和删除,而且它们可以自动更新到最新版本,每天最多可以更新四次。


所有 Snap 软件包 (snaps) 可以在 Canonical Snapcraft上查找得到。


所有 Flatpak 软件包 (flatpaks) 可以在  Flathub Store 上查找得到。



 

 

 

 

沒有留言:

張貼留言