当然,对于大多数软件包来说,答案是简单的:如果是某种工具或库,deb 是唯一的选择,而对于某些专有软件,snap 是唯一的选择。
Ubuntu 似乎正在大力推动和推广 Snap 包,称其在打包、隔离、安全、更新等方面具有优势,但 Ubuntu 18.04 附带的所有应用程序都作为 deb 包安装。
一个例子是 Firefox,出于安全原因,该软件包应保持最新状态,过去曾与分发软件包维护者在安全性和品牌 (Iceweasel) 方面发生过冲突。然而,Canonical 选择将 Firefox 作为 deb 软件包发布。
对于同时具有 snap 和 deb 的软件包,这就提出了一个问题:您应该安装哪一个?如果答案是 snap,我是否应该主动迁移已安装的 deb?
答案1
一般来说,我认为对于大多数依赖系统库的应用程序,你应该继续使用 DEB。这样做的好处是,如果你出于安全原因更新了这个库,那么所有使用此库的应用程序都会受益,即使原始应用程序的维护者不知道这个漏洞。
如果您希望更新特定应用程序而不更新整个系统,SNAPS 是个不错的选择。例如,您使用的是 LTS 版本,但想要拥有特定应用程序的最新版本。与必须针对“旧”系统范围库编译应用程序的 PPA 相比,SNAPS 中的应用程序会自带库。这对维护人员来说更容易,如果您碰巧使用了大量 PPA,这可能会让您避免陷入依赖地狱。
答案2
snap 的主要缺点之一是需要更多的空间,因为每个软件都有自己的依赖项,而 deb 包在整个系统中使用共享依赖项,影响要小得多。
当您想要保持系统隔离(例如与专有二进制文件隔离)或包本身依赖于与已安装的依赖项不同的依赖项(例如较新的依赖项)时,Snap 实用程序就会发挥作用。
答案3
这是一个非常主观的答案。
我个人总是使用 deb 或任何其他包容性包装。我不使用 snap,因为我觉得它们就像围墙花园,不像 Linux 所代表的开放生态系统。
由于软件中心的描述/元数据不明确/不明确,我错误地安装了几次 snap。我发现它们降低了我的笔记本电脑体验。这些都被及时删除了。
如果应用程序只有一个 snap 包,我宁愿不使用该应用程序本身。
我担心有一天 snappers 可能会说你甚至不需要操作系统。
答案4
不使用 SNAP 非常困难。似乎你别无选择。是的,你可以选择安装应用程序 DEB 或apt-get install ...
通过终端,但即使这样似乎也并不总是解决方案。经过一番搜索,我找到了解决方案。你可以完全删除 SNAP,虽然这并不容易。
Kevin Custer 告诉你如何摧毁 SNAP。我在 21.04 中测试过这个。 https://www.kevin-custer.com/blog/disabling-snaps-in-ubuntu-20-10-and-20-04-lts/
完成这些步骤后,您可能需要重新安装 gnome-software sudo apt-get install gnome-software
。从那时起,SNAP 将不再在软件商店中提供。
您有 SNAP 吗?
snap list
让我们开始吧,快速总结一下:
sudo snap remove snap-store
sudo snap remove gtk-common-themes
sudo snap remove gnome-3-34-1804
sudo snap remove core18
sudo snap remove snapd
sudo umount /var/snap
sudo apt purge snapd
rm -rf ~/snap
sudo rm -rf /snap
sudo rm -rf /var/snap
sudo rm -rf /var/lib/snapd
让我们看看,还有什么 SNAP 吗?
snap list
感谢 Kevin Custer!