每次依赖项获得安全更新时,我都必须创建一个新的 snap 包吗?

Fel*_*ler 9 package-management dependencies deb snap

如果我创建一个包含 5 个依赖项的snap包。每次依赖项获得(安全)更新时,我是否都必须创建新的包版本?

我的意思是.deb包的优点是,例如在 Ubuntu/Debian 中,我可以使用一个库,一旦该库获得更新,这意味着我的软件的一部分也会更新。由于他们只提交安全更新,我可以 (99%) 确定库更新不会破坏 API,因此我的软件可能会破坏。

kyr*_*ofa 7

简短的回答是肯定的,如果您需要更新依赖项,则需要重建您的快照。但是,这里也有更长的答案。

假设您有一些使用 SSL 的应用程序(可能是一些嵌入式软件或使用 Apache 的成熟网站)。您进行研究并使用特定的密钥交换和对称算法。现在说在 SSL 中发现了一个安全漏洞,并发布了一个新版本。仅仅因为它是一个安全版本并不意味着修补的漏洞存在于您使用的算法之一中。如果不是呢?如果,通过修补在算法的漏洞,你没有用,有些东西你使用被破坏或受到损害(最近用 PHP 发生在我身上)?如果您要捆绑它,您可以打电话询问是否需要在逐个使用的基础上升级。您还可以在向所有用户推出之前对其进行广泛测试。也有可能您所针对的发行版具有不同版本的 SSL,该版本不适用于您的软件,将它捆绑在 snap 包中可提供跨平台的通用体验。

共享依赖的好处和捆绑它们的好处之间肯定存在权衡。

  • 如果您从开发人员处安装软件,则表示您信任该开发人员。他们如何处理 SSL 的问题就是一个很好的例子 - 如果应用程序开发人员没有明智地使用库,那么仅仅拥有库的修补版本对您没有帮助。由于算法或密钥管理或签名检查的错误选择而导致安全性差的应用程序示例很多 - 与它们链接的 OpenSSL 版本无关。理解这一点是明智的 - 您不会通过在系统上获得更新的库来神奇地获得安全性。 (2认同)
  • 相比之下,如果应用程序遭到入侵,deb 通常会让攻击者在整个系统中进行攻击,而 snap 则不会。没有系统是完美的,但可以合理地说,快照在某些情况下是一种有用的改进。 (2认同)