如果我可以通过 apt 安装,为什么还要安装 snap 呢?

如果我可以通过 apt 安装,为什么还要安装 snap 呢?

这不是以下问题的重复

因为:

  • 我的问题明确指出我对最终用户体验感兴趣而不是开发的难易程度或效率,而另一个问题主要涉及的是开发难易程度或效率。如前所述,开发/部署会影响最终用户体验,但这并不是全部,而且这两个问题都没有解决直接影响最终用户使用应用程序能力的问题(例如,无法访问其他分区上的数据、速度缓慢等)。
  • 也许“引人注目”这个词不太合适;我的目的是询问现实世界的经验后果,即发生或不发生的事情,而不是理论/架构陈述,虽然这些陈述可能是准确的,但似乎没有任何现实世界的例子来支持该陈述。我应该更直接地说,我的目的是得到考虑到 snap 的“优势”与最终用户在现实世界中遇到的缺点之间的平衡的答案。“重复”问题主要是理论上的,根本没有讨论最终用户体验。
  • “重复”问题没有提及任何与我在此处使用的示例稍微类似的内容,即,快照对最终用户有不利影响(在这种情况下,无法访问其他分区上的数据和快照应用程序的性能),而这在我能找到的任何可用文档中都没有讨论过。

虽然我理解 Snap 在让应用程序更广泛地普及方面具有巨大优势,如果应用程序可通过 apt 包用于我的发行版/版本,那么有什么令人信服的理由选择 snap 而不是 apt 吗?

我很好奇,因为我一直在阅读有关快照的一些资料,并且对该方法的所有兴奋似乎都是关于对应用程序开发人员有利的事情,但我几乎没有看到任何关于它如何让最终用户的生活更轻松的内容(除了显而易见的;他们可能能够安装他们的发行版/版本上不可用的应用程序)。

我安装了 snapd 和几个 snap 应用,结果真的很沮丧和失望。snap 应用很慢,而且很难(甚至不可能)从 snap 中访问其他分区上的文件。

虽然我已经看到很多信息说快照“更快”,“更容易”,“更安全”等等,但我还没有找到任何可以解释为什么或如何实际出现这种情况的内容。

我是 Linux 的新手,我想知道我是否只是忽略了一些显而易见的东西?要清楚的是,我理解为什么这项技术总体上可能有用,但我找不到任何可以解释它是否/为什么是更好的选择的东西,即使相关应用程序可以通过更传统的方法安装,并且所有依赖项都得到满足。

答案1

我可以分享对两个版本的 LibreOffice 6.1.3.2 进行一些实验的结果:一个是随 ubuntu 18.04 提供的 snap,另一个是从官方 ppa 安装的。请记住,我下面给出的值是近似值。

空 Calc 电子表格的启动时间

  • ppa:1.5 秒

  • 拍摄时间:13 秒

使用 impress 将 13 张幻灯片(大部分为 png 图片)转换为 pdf 所需的时间

  • ppa:9 秒

  • 快进~70秒

磁盘使用量 [MB](预期/实际)

  • 帕帕:369 / 483

  • 快照:507 / 1269

我意识到这些值取决于我使用的系统的硬件和具体配置。但是,考虑到我使用的是相同的笔记本电脑、操作系统和 LibreOffice 版本,我相信相对比较仍然很有启发性。

总而言之,在我的笔记本电脑上,Snap 映像占用了超过 2 倍的磁盘空间,并且比相应的 ppa 慢了近 10 倍。与普遍的看法相反,Snap 应用程序在我的系统上的后续启动速度并不快。

我个人认为 snap 给最终用户带来的好处只与系统安全有关(安装时不需要 sudo,运行时权限有限)。因此,如果您运行的是低风险的个人系统,我会坚持使用 ppa。在这种情况下,增强的安全性不值得以当今 snap 中更差的性能为代价。

答案2

Canonical 说……

Snap 适用于任何发行版或设备。Snap 安装速度更快、创建更简单、运行更安全,并且会自动更新,因此您的应用始终保持最新状态,绝不会崩溃。

我也喜欢用 apt 在 ubuntu 上管理我的软件包,但如果你使用的是其他发行版,你可能想安装一些在发行版的软件包管理器中不可用但在 snap 中可能可用的东西。Canonical 想用 snap “取代” apt,因为他们认为 snap 更稳定,开发人员创建软件包也更容易。

Snap 更安全!您安装的 Snap 安装在硬盘的不同卷中。您可以像在 Android 6.0 及更高版本上一样管理应用程序的权限。您可以阻止应用程序使用您的相机或麦克风并访问主目录中的文件。

确实,主题兼容性存在一些问题,但 snap 更安全,并且可以让您访问大多数发行版中的软件包。

答案3

我使用 snap 是因为它们的更新速度通常比 apt 版本更快,而 apt 版本可能已经过时一年或更久。对于一些不经常更改功能的程序来说,这不是问题,但其他程序的发布时间表很快,会添加/删除许多功能。

以下是我亲身遇到的案例。

  • 几年前我想做点什么Arduino和命令行。apt 中当前的 arduino 版本是 2013 年的 1.0.5,非常过时,缺少我需要的功能。snap 上的当前版本是 1.8.12,非常新。

  • 当前版本搅拌机在 apt 中为 2.79,而在 snap 中为 2.82。Blender 用户会知道很多在 2.80 版中发生了变化。

  • 当前版本皮皮从 2018 年左右开始是 5.10.0,而 snap 中的版本是 7.3.0。pypy3 尤其经过了大量开发,pypy 团队每次发布都会做出许多改进。

  • 当前版本瘸子在 apt 中是 2.8.22,在 snap 中是 2.10.18。UI 发生了很多改变,启动时间也变得更快了。

正如您所看到的,对于像我这样的最终用户来说,在很多情况下,保持最新状态确实非常重要。

相关内容