Ubuntu 为什么要转向 Snap 软件包?

Ubuntu 为什么要转向 Snap 软件包?

为什么 Ubuntu 要转储.deb软件包并移至.snap软件包?

至少现在他们保留了.deb用于正常分布的软件包。.deb这已经是最流行的包装格式了。

给出了 Snap 软件包格式的概念。但现有的 deb 软件包会怎样?迁移到 Snap 有什么明显优势吗?值得付出这么多努力吗?

答案1

折断尝试解决 Linux 作为桌面操作系统的一个基本问题:软件可用性和软件分发。Snap 是并非旨在完全取代 debs但是。Snaps 和 Debs 是相互协作的。

我是一名 Linux 爱好者,也是一名 Linux 应用程序的项目经理。虽然我很喜欢整个 Linux 系统,但我无法忍受软件包分发的现状。Snaps 等通用应用程序格式旨在解决这个根本问题。

在 Linux 中,软件包是专门为单个发行版的单个版本构建的经过大量调整,可以制作一个.deb可以在所有基于 Debian 的系统上运行的软件包,但这很复杂,限制了开发人员。由于依赖项的版本锁定,有时也不实用。

如果我为 Ubuntu 20.04 创建 deb 包,它只能在该版本上运行。我还必须为 16.04、18.04、20.10 等制作不同的包。我已经必须制作四个包了只是对于 Ubuntu。我还需要为每个 Debian 版本、每个 Fedora 版本和每个 openSUSE 版本制作一个。RPM 在这方面更灵活,但锁定依赖关系问题仍然存在。

这意味着如果我想发布应用程序的新版本,我必须创建 20 多个软件包来覆盖大多数 Linux 发行版,但这仍然无法覆盖所有发行版。第二种可能性是等待发行版维护者将您的软件包添加到发行版中,但这通常需要很长时间。此外,发行版维护者而不是软件开发人员决定用户获得哪个版本。

使用 Snap,单个软件包可在每个发行版的每个版本上运行支持 snap。请参阅安装 snapd以获取支持它的许多发行版的列表。

此外,借助 Snap,开发人员发布并维护该软件包,而不是发行版维护者。因此,作为开发人员,我可以向所有用户发布新版本,而无需等待其他任何人。

本质上,我对传统 Linux 软件包分发的厌恶之处都试图通过 Snaps 来解决。不过值得注意的是,这些核心问题也试图通过扁平包装并在一定程度上应用图片。关于哪种格式更好的讨论引起了激烈的争论,而且讨论的时间比这篇回复要长得多。现在,我会说我可以运行任何通用格式,因为它们的工作方式不同,因此不会相互冲突,从而可以同时运行所有 3 种和传统软件包。如果必须选择,我可能会选择 Flatpak,因为它们似乎更通用,功能兼容性更强。

总结

Linux 软件包分发对开发人员和用户来说都很糟糕。Snaps、Flatpaks 和 AppImages 旨在解决基于 Linux 的系统的这一根本问题。


这个问题实际上是关于为什么要这么做,但如果有人有兴趣了解更多关于 Snap 是什么以及它们是如何工作的。我创建了这个视频深入解释该结构。

答案2

这很简单。Snappy 包包含所有必需的文件,其中 .deb 包与其他包有依赖关系。

缺点是 snappy 比较大,因为它包含了所有的文件。但最大的优点是你不会因为其他包而遇到麻烦,而且如果你删除这个包,其他包也不会因为缺少依赖关系而受到影响。

答案3

Snappy Personal 是他们用于包管理/更新的新方法,旨在更快、更可靠、交易性更强且安全性更强。

Snappy 至少用于他们的一个桌面版本——计划是将 Ubuntu 的 Desktop-Next 版本从 .deb 切换到 Snappy Personal。

.deb 仍会存在,并且普通用户在将 .deb 转换为 snappy 时仍然可以定期使用它。

Snappy 将用于统一 ioT 中的包管理概念,目前 ioT 正使用 Snappy 作为其核心操作系统。此外,Snappy 提供了一种更好的更新方式,并消除了更新/升级时的问题,因为它使用了整个镜像的概念,这意味着更新将只是一个部分,因此不会失败

阅读这些文章以获取更多信息:

http://www.webupd8.org/2015/04/ubuntu-desktop-to-eventually-switch-to.html

http://www.itworld.com/article/2914850/linux/is-ubuntu-moving-away-from-deb-packages-here-is-the-complete-story.html

ubuntu on air 上还有一个 QA 视频,回答了很多问题 https://youtu.be/lHO8j8uo5Z4

答案4

考虑迁移到敏捷的 Ubuntu 核心今天如果你想创造一些东西给别人使用,换句话说,产品

该软件交付方式快照,鉴于其特性,我们可以确信安装和升级将按照原始创建者的意图在每个系统上进行。其他特性包括安全性,例如独立执行和用于与系统通信和配置已安装 snap 的干净接口。

为了实现这一目标,快照与 Debian 软件包有很大不同:

  • snap 位于系统确定的隔离位置,而 debian 包则可以将文件传播到各处。
  • 没有用于 snap 版本的维护脚本。

回到最初的问题使用或者不使用如果你打算用 Ubuntu Core 替换你的桌面,我建议你继续使用常规的 Ubuntu 桌面。我个人喜欢称 Ubuntu Core 为没有发行版,因为它本身并没有什么,但却提供了非常好的基础模块来提供一些东西,这就是为什么它在当今的物联网中如此受欢迎的原因。

相关内容