嵌入式开发交流网论坛
标题:
Snap被LinuxMint抛弃
[打印本页]
作者:
wyxc0124
时间:
2020-7-15 00:45
标题:
Snap被LinuxMint抛弃
上个月,随着 Linux Mint 20 的发布,Linux Mint 开始默认禁止安装 snapd 工具。直接起因是,从 Ubuntu 19.10 开始,系统会直接从上游覆盖 Chromium 的 APT 软件包,然后自行下载 snapd 工具,随即以 Snap 包的形式安装 Chromium 浏览器。整个过程以 root 身份运行,自动安装,并未获取用户授权。
[attach]46801[/attach]
在相当长的一段时间内,Linux Mint 是除 Ubuntu 之外拥有最多用户的 Linux 发行版。基于 Ubuntu 和 Debian 的 Linux Mint 继承了二者的众多特性,它与 Ubuntu 的软件库也几乎完全兼容,并采用 APT(Advanced Packaging Tools,高级打包工具)进行软件包管理。直到 2014 年,Ubuntu 推出 Snap,开始用 Snap 和 APT 并行分发软件。
不同于传统的 Linux 软件包管理方法(如 APT 和 RPM),Snap 包含了软件运行需要的所有依赖关系,并将其全部捆绑在一个系统镜像中,这在一定程度上简化了软件管理过程。不仅如此,统一化的 Snap 软件包能够在不同 Linux 发行版上运行,开发者无需再针对不同的发行版分别构建,软件部署的难度有所降低,软件开发和最终部署之间的延迟也得以缩减。
Canonical 最初将 Snap 作为一份跨平台解决方案提供出来,但如今在 Linux Mint 等看来,它本身更成为一个问题。事实上这并非 Linux Mint 团队首次公开发声,他们在一年前就表露过对 Snap 的担忧:“当它无缘无故替换掉软件包时,当它开始损害我们与上游项目和软件供应商的互动,并使我们别无选择时,它就成为了一种威胁。”
当时,Linux Mint 团队表示希望与 Ubuntu 及 Snap 项目组进行协商。但一年后的现在,Ubuntu 20.04 中的 Chromium 软件包仍然是一个空壳子,一切依旧指向 Ubuntu 的 Snap 应用商店。因此,Linux Mint 团队决定,从 Linux Mint 20 开始,APT 将不再允许以 Snap 形式进行安装。该版本会保留 Chromium 的空包,告知用户缘由,并指引合适的获取方法。
[attach]46802[/attach]
Linux Mint 宣布不再支持 Snap 后,Canonical 终于给出公开回复。Ubuntu 工程服务负责人 Alan Pope 针对此次冲突的起源——Chromium 软件包事件——作出了回应。
Pope 认为,Chromium 不是 Ubuntu 上的默认浏览器,用户较少,受到的影响也不大。他提到 Chromium 每六周一个大版本,期间还有许多次要版本的高更新频率,要为不同的 Ubuntu 版本及各类架构提供更新并非易事,而 Snap 能够支持这样高频率的更新。用户通过 Snap 也能够并行安装稳定版、测试版或开发版等多个不同发行版。
不过,整个事件的争议焦点不在于此,不止 Chromium 会遇到这种情况,Canonical 对 gnome-software deb 软件包也施加了同样的方法。Canonical 推行 Snap 不完全是为了帮助简化软件包管理过程,更是为了自己的用户群增长做考虑。
确实,为 Linux 桌面构建应用存在困难。前 KDE 董事会成员 Frank Karlitschek 在 2019 年的 Linux 应用峰会上曾坦言 “Linux 应用程序只有四到五百个,macOS 和 Windows 上却有数万个”。Linus Torvalds 也在去年感慨 “The Linux desktop is in trouble”(Linux 桌面陷入了困境),因为“我们没有一个标准化的 Linux 桌面”,对于许多开发者来说,这是一大阻碍因素。
真正惹恼 Linux Mint 的,是 Canonical 对待 APT 软件包的态度,和剥夺用户权利的垄断式行为。Linux Mint 团队用 Spotify 做例证:当一个 Fedora 用户想要安装 Spotify 时,会被跳转至 snapcraft 页面。与此同时,Spotify 不再提供 RPM 软件包、appimage、Flatpak 或其他格式,用户别无选择,只能从 Snap Store 下载。
[attach]46803[/attach]
常与 Snap 一同被提起的 Flatpak 也被 Linux Mint 团队拿来作比较。相对而言,Flatpak 更加自由,它允许任何人创建商店,它的客户端也能够与多个商店建立联系,当双方意见不合时,开发者可以选择创建自己的 Flatpak 商店,而不一定要在 Flathub 发布应用。
相较而言,Snap 发布之初就只有一个客户端,无法与多个服务器通信,这样的模式让 Linux Mint 团队从一开始就感到担忧。起初,他们以为,“只要 Snap 没有成为 Linux 的发布标准,只要开发者持续分发软件包,只要 Snap 不影响到已经拥有的东西,就可以了”。如今事情的发展显然不在预期。
在 Linux Mint 团队看来,原先使用的 apt/dpkg 等软件包管理器更成熟,也更为自由软件着想,不商业化,涉及的东西没有那么多,只要给用户授权并提供发行版就好。而 Snap 包无法被修改、重构、打补丁或是镜像。现在 Snap 甚至做得过头了,借由 APT 软件包来安装自己受商业控制的软件包管理系统,这完全打破了 Snap "永远不会取代 APT" 的承诺。
一年前发布的博客文章中,Linux Mint 的负责人 Clement 曾指出 Snap 的好处:可以提供 Linux 之前无法访问到的软件。他表示“希望有一天可以将 snap 集成到 Linux Mint 中,尽管市场可能会受到影响”。目前,尚不清楚双方是否还会展开对话,以找寻合适的解决方案。
借 LWN.net 之言,“希望 Linux Mint 的这一举措能够促使事情朝着更开放的方向发展,以开放形式实现的 Snap 打包系统将会是整个 Linux 社区的胜利”。
欢迎光临 嵌入式开发交流网论坛 (http://www.dianzixuexi.com/bbs/)
Powered by Discuz! X3.2