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 上查找得到。



 

 

 

 

沒有留言:

張貼留言