当前位置: 首页 > 科技观察

如何清理Snap版本以释放磁盘空间

时间:2023-03-17 12:44:27 科技观察

我正在使用的Ubuntu测试系统上的磁盘空间不足。因此,我通过GNOME的磁盘使用分析器进行了调查,以找出哪个包正在消耗宝贵的SSD空间。除了通常的缓存和主目录外,我惊讶地发现Snap和Flatpak占用了大量存储空间。Snap尺寸-在清洁之前,我始终坚持一条规则:除非万不得已,否则不要使用Snap或Flatpaks。这主要是因为它们的安装尺寸等问题。我更喜欢原生deb和rpm包。这些年来,我在这个测试系统上安装和删除了一定数量的Snap包。但是卸载后还是有问题。Snap在系统中留下了一些普通用户不知道的残留文件。所以我打开了Snap文件夹/var/lib/snapd/snaps,发现Snap保留了以前安装/卸载的包的旧版本。例如,在下图中,您可以看到GNOME3.28、3.34和Wine都已被删除。但他们还在那里。发生这种情况是因为Snap的设计,它会在正确卸载后保留已卸载软件包的版本。snaps目录中的文件或者,您可以在终端中使用:snaplist--allsnap列出所有保留版本,默认值为3。这意味着Snap保留每个包的三个旧版本,包括活动版本。如果您对磁盘空间没有限制,这是可以的。但是对于服务器等情况,这很容易遇到成本问题,它会吃掉你的磁盘空间。但是,您可以使用以下命令轻松修改计数。该值可以在2到20之间。sudosnapsetsystemrefresh.retain=2清理Snap版本最新版本。这是我们将用来清理Snap的脚本。#!/bin/bash#Removesoldrevisionsofsnaps#CLOSEALLSNAPSBEFORERunningTHISset-euLANG=en_US.UTF-8快照列表--all|awk'/disabled/{print$1,$3}'whilereadsnapnamerevision;dosnapremove"$snapname"--revision="$revision"done将上面的脚本以.sh扩展名保存在一个目录中(例如clean_snap.sh),并使其具有可执行权限并运行。chmod+xclean_snap.sh运行脚本后,它减少了磁盘空间很多。该脚本还将显示要删除的包的名称。执行脚本清理后的Snap大小结论关于Snap的设计效率有很多争论。许多人说它设计糟糕、臃肿并且耗尽系统资源。这句话的某些部分是真实的,我不会否认。如果实施和强化得当,沙盒应用程序的整个概念非常棒。但我相信Flatpak比Snap做得更好。也就是说,我希望这可以帮助您清理一些磁盘空间。虽然它只在Ubuntu中测试过,但它应该适用于所有支持Snap的Linux发行版。另外,请查看我们关于如何清理Ubuntu和其他步骤的指南。最后,如果你想清理Flatpak应用程序,请参考本指南。