因此我寻找磁盘空间,并在 /var/lib/snapd/snaps 中找到了这些文件,这引起了我的兴趣:
-rw------- 1 root 157M sty 4 04:56 gnome-3-28-1804_110.snap
-rw------- 1 root 161M sty 25 16:45 gnome-3-28-1804_116.snap
-rw------- 2 root 243M kwi 28 00:56 gnome-3-34-1804_27.snap
-rw------- 1 root 256M maj 9 04:02 gnome-3-34-1804_33.snap
这些到底是什么?我猜是某种快照图像,但我如何使用它们,或者我已经在使用它们了?它们看起来像 gnome 版本,我的 gnome-shell 显示以下内容:
$ gnome-shell --version
GNOME Shell 3.28.4
该 snap 目录中似乎有 3.34 版本,但我该如何使用它?
答案1
Snap 是由维护 Ubuntu 的 Canonical 开发的包管理器,它提供了在沙箱中运行的独立应用程序。
Snap 有优点也有缺点,您可以在其他地方查找,但您偶然发现了它的一个缺点,那就是它比传统安装的应用程序占用更大的磁盘空间,传统安装的应用程序链接到共享库,因此,当您安装许多应用程序时,会有很多共同的共享代码。Snap 软件包包含软件包本身内的所有依赖项。这使得它们占用更多的磁盘空间、更多的运行内存,也使得它们的安装和加载速度更慢,而且它们的运行速度通常也慢得多。
在这个问题中,您具体询问的软件包是 GNOME 3.28 和 3.34 堆栈、共享基础库和桌面集成组件。正如您所见,Canonical 甚至已经开始使用 snap 作为操作系统的库组件。即使您的 shell 使用的是 3.28,版本 3.34 也可能已安装用于需要它的其他应用程序,因此除非您确定没有任何依赖它,否则我不会删除它。
如果您担心磁盘空间和效率,而不是微观管理这些软件包,最好的办法可能是更改发行版。Canonical 已经深入研究了 snap 软件包框架,每年都更加依赖它,将越来越多的操作系统组件逐渐移入其中,正如您在此处的示例中所看到的。如果您对操作系统的速度、性能和内存/磁盘空间利用率感到满意,那么很好,就让这些保持原样吧。但是,如果您因为关心它而想要清理这么多磁盘空间,那么您可能更适合使用其他发行版,例如 Arch,它默认避免使用这些类型的软件包(尽管它允许您选择安装软件包管理器,然后根据需要安装特定软件包)。另一个流行的发行版 Mint 在这方面与 Ubuntu 并没有明显不同,因为它也同样转向了 flatpak,这是一个或多或少类似的软件包系统。它仅适用于桌面组件,而不适用于共享库或操作系统的核心组件,因此它可能是避免像您在此处看到的设置的一种“中间立场”,即快速安装共享 GNOME 堆栈,但同时仍使用 flatpak 来安装许多桌面应用程序。请记住,效果会很小,因为这两个软件包中的任何一个都会在大型桌面应用程序中安装大量臃肿内容,这些应用程序占用了系统上很大一部分二进制文件,并且在桌面上,是您最常打开的内容,例如 Web 浏览器。
答案2
snap 命令收集系统配置信息并将信息压缩为 pax 文件。然后可以将该文件写入磁带或 DVD 等设备,或传输到远程系统。使用 snap 命令收集的信息可能需要用于识别和解决系统问题。