如何在Ubuntu系统中释放磁盘空间

嵌入式技术

1330人已加入

描述

这个带有脚本的快速指南有助于清理旧的快照版本,并在 Ubuntu 系统中释放一些磁盘空间。

我的 Ubuntu 测试系统磁盘空间不足。因此,我正在通过 GNOME 的磁盘使用情况分析器进行查看,以找出哪个软件包正在消耗宝贵的 SSD 空间。除了通常的缓存和主目录之外,令我惊讶的是,我发现 Snap 和 Flatpak 占用了相当大的存储空间。 Ubuntu


尽管如此,我始终坚持一条规则 - 除非必要,否则不要使用 Snap 或 Flatpak。这主要是因为它们的安装尺寸和其他问题。我更喜欢 deb 和 rpm 包。多年来,我在这个测试系统中安装和删除了一定数量的 Snap 包。 卸载后出现问题;Snap 在系统中保留一些一般用户不知道的残留文件。 因此,我打开了 Snap 文件夹 /var/lib/snapd/snaps,发现 Snap 正在跟踪以前安装/卸载的包的旧版本。 例如,在下图中,您可以看到 GNOME 3.28、3.34 和 Wine – 所有这些都被删除了。但他们仍然在那里。之所以会发生这种情况,是因为Snap 设计在正确卸载后保留了卸载包的版本。

Ubuntu

snap目录下的文件 或者,您可以使用以下方法在终端中获得相同的结果:


linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
 snap list --all
  Ubuntu


列出 snap 包 对于保留的多个修订,默认值为 3。这意味着 Snap 保留每个包的三个旧版本,包括活动版本。如果您的磁盘空间很大,这也没有关系。 但对于服务器和其他用例,这很容易遇到成本问题,消耗您的磁盘空间。 但是,可以使用以下命令轻松修改计数。该值可以在2到20之间。

sudo snap set system refresh.retain=2 清除 Snap 版本 在 SuperUser 上的一篇帖子中,Canonical 前工程经理 Popey 提供了一个简单的脚本,可以清理旧版本的 Snap 并保留最新版本。 这是我们将用于清理 Snap-up 的脚本。

 
#!/bin/bash
#删除snap旧版本 #Linux迷www.linuxmi.com #在运行此之前关闭所有snap
 set -eu
 LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' |
     while read snapname revision; do
         snap remove "$snapname" --revision="$revision"
     done
  Ubuntu


将上述脚本另存为目录中的.sh(例如linuxmi.sh),赋予其可执行权限并运行。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
 chmod +x linuxmi.sh


linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
 sudo ./linuxmi.sh
  当我运行脚本时,它减少了很多磁盘空间。脚本还将显示要删除的包的名称。 Ubuntu

正在执行脚本

Ubuntu


清理后的 snap 大小


总结


Snap 的设计效率一直存在争议。许多人说它被设计打破了,臃肿,系统负担沉重。我不否认这一论点的某些部分是正确的。如果实现和增强得当,沙箱应用程序的整个概念都很好。我相信,Flatpak 比 Snap 做得更好。 也就是说,我希望这可以帮助您清理一些磁盘空间。尽管它在 Ubuntu 中进行了测试,但它应该可以在所有支持 Snap 的 Linux 发行版中运行。  


 审核编辑:汤梓红

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分