Linux Mint决定不支持Ubuntu Snap

名列最佳Linux版本的Linux Mint发行版,官方在本月的更新消息中提到,从Linux Mint 20开始,在默认情况下,APT将会禁止安装snapd工具,APT不会允许存储库组件代表用户安装Snap组件,此举是为了避免系统在未经用户授权就安装Snap组件管理系统。

官方提到,Linux Mint 20的Chromium组件将会是一个空组件,当用户试图安装Chromium时,系统会跳出说明,告诉用户该组件为空的原因,并且指引用户取得Chromium的方法。Linux Mint发行版是以Debian和Ubuntu为基础,继承了大量来自两个版本的组件,这些组件是以APT(Advanced Package Tool)打包,而Ubuntu在2014年的时候,开始并用Snap技术与APT发布软件。

Snap是由Canonical开发的自包含的组件部署系统,由于系统镜像文件snapd能够捆绑软件执行所需要的所有相依项目,因此让管理应用程序相依项目变得简单,软件开发商能以简单的方法发布软件,让软件可以于存在不兼容函数库的系统上执行,甚至一个系统可以同时存在,多个使用不同相依项目的同一软件。Snap解决跨Ubuntu版本的软件支持问题,而且还能让Canonical所发布的组件,在其他Linux发行版上执行。

Linux Mint官方提到,当Fedora用户想要安装Spotify,则系统会提示用户并且跳转到https://snapcraft.io/spotify,要求用户从Canonical的Snap商店中安装,Spotify不再发布RPM组件、Appimage、Flatpak或其他组件格式,当用户没有其他选择,就只能被迫使用Snap。

虽然Snap角色如同Appimage和Flatpak,可以简单地向不同的发行版发布软件,但是比起Snap,Linux Mint官方表示,Flatpak自由的多,而且更具开放多样精神,Flatpak允许任何人创建商店,而且Flatpak客户端也能够与多个商店沟通,软件厂商可以选择在Flathub发布软件,在理念不合的时候,厂商能创建自己的Flatpak商店发布软件。

不过,Snap推出的时候就仅有一个客户端,无法与其他服务器沟通,Linux Mint在当时就对此感到担忧,但是他们认为,只要Snap没有成为主流,且软件厂商继续发布其他格式的组件,那Linux Mint支持Snap也没有关系。

Canonical在去年改变组件发布的方式,此做法将会影响组件生态的多样性,而让Linux Mint跳脚的事件是,Ubuntu所发布的Chromium浏览器组件,使Linux Mint感受到了危机,Ubuntu置换掉原本的Chromium存储库组件,以Snap的形式安装Chromium,也就是当用户安装APT(Advanced Package Tool)更新的时候,系统会先安装Snap组件管理工具,接着才安装Snap上的Chromium的组件,这使得Snap成为安装Chromium的必要工具,而且这个安装过程是以Root身份执行,不需要用户参与或是授权。

这种情况不只发生在Chromium,Canonical也在gnome-software组件采取相同的方法,而Linux Mint在意的点是,用户使用APT安装软件,却必需要先安装一个由受商业控制的组件管理系统,Linux Mint官方提到,这件事印证了当初Snap宣布时开发人员的担心,也破坏了Canonical保证不会取代APT的承诺。经过一年协调未果,官方决定不在Linux Mint上支持Snap。