如果我创建一个折断假设有 5 个依赖项的软件包。每次依赖项获得(安全)更新时,我是否都必须创建一个新的软件包版本?
我的意思是.deb软件包的优点是,例如在 Ubuntu/Debian 中,我可以使用一个库,一旦该库获得更新,就意味着我的部分软件也会获得更新。而且由于他们只提交安全更新,我可以 (99%) 确信库更新不会破坏 API,从而不会破坏我的软件。
答案1
简短的回答是肯定的,如果您需要更新依赖项,则需要重建 snap。不过,这里还有一个更长的答案。
假设您有某个使用 SSL 的应用程序(可能是某些嵌入式软件或使用 Apache 的完整网站)。您进行研究并利用特定的密钥交换和对称算法。现在假设在 SSL 中发现了一个安全漏洞,并且发布了一个新版本。仅仅因为它是一个安全版本并不意味着修补的漏洞就在您使用的算法之一中。如果不是呢?如果通过修补您未使用的算法中的漏洞,您会怎么做?做过使用是否被破坏或破解(我最近在使用 PHP 时就遇到过这种情况)?如果您要捆绑它,您可以根据具体使用情况决定是否需要升级。您还可以在将其推广给所有用户之前对其进行广泛测试。还有一种可能性是,您定位的发行版有不同版本的 SSL,无法与您的软件配合使用,而将其捆绑在 snap 中则可以提供跨平台的通用体验。
共享依赖关系的好处和捆绑依赖关系的好处之间肯定存在权衡。