如果一个包既可用作 deb 又可用作 snap,哪种方法更可取?

Pep*_*ijn 57 package-management apt deb snap

当然,对于大多数软件包来说,答案是微不足道的:如果是某个工具或库,则 deb 是唯一的选择,而对于某些专有软件 snap 是唯一的选择。

Ubuntu 似乎正在大力推动和推广 Snap 软件包,理由是在打包、隔离、安全、更新等方面具有优势。但 Ubuntu 18.04 附带的所有应用程序都安装为 deb 软件包。

一个例子是 Firefox,它是一个出于安全原因应该保持最新的包,并且过去与分发包维护者在安全和品牌 (Iceweasel) 方面存在冲突。然而 Canonical 选择将 Firefox 作为 deb 包发布。

对于同时具有 snap 和 deb 的软件包,这就提出了一个问题:您应该安装哪个?如果答案很简单,我应该主动迁移已安装的 deb 吗?

Bru*_*uni 52

一般来说,对于大多数依赖系统库的应用程序,我会说你应该继续使用 DEB。这样做的好处是,如果您更新这个库,例如出于安全原因,所有使用该库的应用程序都会受益,即使原始应用程序的维护者不知道该漏洞。

SNAPS 适用于您有兴趣更新特定应用程序而不更新整个系统的情况。例如,您使用的是 LTS 版本,但想要拥有特定应用程序的最新版本。与必须针对“旧”系统范围的库编译应用程序的 PPA 相比,应用程序很快就会带来自己的库。这对维护人员来说更容易,并且如果您碰巧使用了大量 PPA,可能会阻止您陷入依赖地狱。

  • @RonJohn 是的,但是如果您使用 ppa,则必须针对“旧”系统范围的库编译应用程序。很快,应用程序就自带了自己的库。这对维护人员来说更容易,并且如果您碰巧使用了很多 ppa,则可能会阻止您陷入依赖地狱。 (4认同)
  • @dcorking 我编辑了答案 (2认同)

Dan*_*mba 24

snap 的主要缺点之一是需要更多的空间,因为每个软件都有自己的依赖项,而 deb 包在整个系统中使用共享依赖项,影响要小得多。

当您想保持系统隔离(例如,与专有二进制文件)或软件包本身依赖于与您安装的依赖不同的依赖项(例如,较新的依赖项)时,snap 的实用程序就派上用场了。

  • @PaddyLandau 在当今世界,我们拥有存储空间较小的移动设备,我们拥有存储空间更小的物联网设备,我们拥有带有操作系统的 SSD,以实现快速启动等等。将所有内容归入一个类别并说没问题在我看来,浪费是一种糟糕的看法。不管怎样,正如你所说,我们不得不求同存异 (8认同)
  • @PaddyLandau 我非常不同意。我经常使用小型 ssd 存储系统,使用大型 hdd 存储数据。我看不出在重复文件上浪费金钱的意义 (6认同)
  • @PaddyLandau 我不能同意更多。我认为这是一个糟糕的意见,只会促进浪费 (4认同)

Sri*_*Sri 5

这是一个高度自以为是的答案。

我个人总是使用 deb 或任何其他包容性包装。我不使用 snap,因为我觉得它们就像围墙花园,不像 Linux 所代表的开放生态系统。

由于软件中心的描述不明确/不明确/元数据,我错误地安装了几次快照。我发现它们降低了我的笔记本电脑体验。那些被及时删除了。

如果一个应用程序只有一个 snap 包,我宁愿不使用该应用程序本身。

我担心有一天鲷鱼可能会说您甚至不需要操作系统。


小智 5

不使用 SNAP 是非常困难的。看来你别无选择。是的,您可以选择安装应用程序 DEB 或apt-get install ...通过终端安装,但即使这样似乎也不总是解决方案。经过相当多的搜索后,我找到了解决方案。您无法轻松地完全删除 SNAP。

凯文·卡斯特告诉您如何摧毁 SNAP。我在21.04测试过这个。 https://www.kevin-custer.com/blog/disabling-snaps-in-ubuntu-20-04/

完成这些步骤后,您可能需要重新安装 gnome-software sudo apt-get install gnome-software。从那时起,SNAP 将不再在软件商店中提供。

你有 SNAP 吗?

snap list
Run Code Online (Sandbox Code Playgroud)

让我们开始吧,快速总结一下:

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
Run Code Online (Sandbox Code Playgroud)

让我们看看,还有 SNAP 吗?

snap list
Run Code Online (Sandbox Code Playgroud)

感谢凯文·卡斯特!


小智 5

在 Ubuntu 22.04 中,它们强制您使用 snap(即对于 firefox),其中 deb 软件包实际上安装了 snap 软件包。由于我在使用 Firefox 的 snap 版本时遇到了很多问题(没有视频加速、SSO 问题、Gnome 扩展接口被阻止、VPN 扩展问题等),幸运的是,网上很少有文章指导如何恢复到经典 deb 版本并防止系统崩溃从覆盖 deb 包上的管理单元。