曾几何时,在 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) 可以在 上查找得到。
所有 Flatpak 软件包 (flatpaks) 可以在 Flathub Store 上查找得到。
沒有留言:
張貼留言