Snap 服务器是否有专有元素?是否可以独立于 Canonical 运行基于 Snap 的分发?
我非常不喜欢 Snap 有多种原因(我在 Linux 上最喜欢的一件事是我可以使用 Snap 安装/卸载东西apt-get
,snap
甚至没有提供直接帮助的体面snap upgrade
)。
但我听到的最令人担忧的是,Snap 拥有专有元素,使其完全由 Canonical 控制。
当时 Canonical 的 Snapcraft 工程经理 Martin Wimpress:
快照存储是专有的
服务器端(等式的“应用商店”位)是封闭源代码,Canonical 一直拒绝告诉任何人如何运行自己的“应用商店”(...)它完全由 Canonical 控制
(还描述了 Canonical 如何在 Snap 上撒谎)
但是https://en.wikipedia.org/wiki/Snap_(package_manager)中的信息框列出了开源许可证。
到底是怎么回事?他们是否将 Snap 商店作为开源发布?或者 Wikipedia 文章是否不完整/被 Canonical 员工损坏?
我很担心,特别是考虑到 Ubuntu 开始基本上不可能在 Ubuntu 上避免 Snap。另一方面,我更愿意有充分的理由来切换 Linux 发行版,而不仅仅是基于过时的博客文章。
Snaps 的实际包管理工具 - snapd和family - 是开源的。这就是 Snap 包管理系统开源的原因,Canonical 并没有对此撒谎。
确实,snapd 被硬编码为使用 Canonical 的服务器来获取快照和与它们关联的元数据。据我所知,后端服务器的源不可用。其他各种部分(例如snapcraft.io 网站、Snap 商店应用程序本身等)都是开源的。我的意思是,您可以从 IIS 服务器提供 deb 文件,但这不会使 apt 包管理系统成为封闭源代码,对吗?
你能让 snapd 与另一个后端一起工作吗?从技术上讲,您可以阅读 snapd 源代码,找出协议(这应该不难 - 我认为代码相当可读),实现您自己的后端,并构建一个带有补丁的 snapd 以交换后端 URL。然而,到目前为止,似乎没有人这样做,Canonical 还没有发布参考实现。
Snap Store 由 Canonical 运行和控制,不是开源的。Snap 的其余部分是开源的,即守护程序和核心软件。这有多大的威胁取决于你的观点,并且一直是很多讨论的主题。例如
作为一个 Linux 新手,我刚刚完成了对 snap 问题的研究,发现(LM)程序管理器没有列出任何 snap 包。我发现采用坚定的方法可能会切断对 Snap Store 的依赖,但会用另一个问题代替它——在我的情况下,丢失或接收使用 Linux Mint 包管理器安装的过时包:
nodepad-plus-plus
工作快照包(在 Windows 下本机可用)根本没有列出。可以安装 Linux 版本 (notepadqq) - 我也安装了 - 但不能替代使用原始版本。这就是实用主义和预期寿命发挥作用的地方:我个人启用了 snaps to install
notepad-plus-plus
,我拥有数十年的经验并认为这是“必备”,但在安装 snaps 之前会进行广泛搜索,因为我可以。FWIW我不确定通过以root身份运行存档管理器GUI从二进制文件安装节点是否是一个好主意,但它完成了工作。TL;博士
是的,Snap 存储由 Canonical 控制。这是否是迫使您离开 Ubuntu 的充分理由是个人意见和信仰的问题,并且在很大程度上取决于您选择和使用 snap 包的方式和原因。