温馨提示×

如何清理ubuntu snap包

小樊
54
2026-09-23 23:26:08
栏目: 智能运维

在 Ubuntu 上,Snap 是 Canonical 的包管理系统,时间久了会积累很多不需要的快照(revisions),占用磁盘空间。下面按「安全 → 彻底」的顺序给你讲怎么清理。


一、查看 Snap 占用情况(先了解情况)

snap list

查看已安装 Snap 包。

查看每个包的历史版本(revisions):

snap list --all

查看磁盘占用:

du -sh /var/lib/snapd/snaps

二、清理旧版本(最推荐 ✅)

Snap 默认会保留多个旧版本,官方推荐用 snapd 自带机制清理。

方法 1:自动清理(推荐)

sudo snap refresh

然后:

sudo snap auto-import

不过最简单的是:

sudo snap remove --revision=<修订号> <包名>

例如:

sudo snap remove --revision=123 code

三、一键清理所有旧版本(脚本方式 ✅)

Snap 没有官方“全部清理”命令,但可以用脚本:

set -euo pipefail
LANG=C snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
    sudo snap remove "$snapname" --revision="$revision"
done

✅ 只删除 disabled(旧版本),不影响正在使用的版本。


四、修改 Snap 保留版本数量(防止以后再膨胀)

编辑配置:

sudo systemctl edit snapd.service

加入:

[Service]
Environment="SNAPD_SQUASHFS_REVISIONS=2"

然后:

sudo systemctl daemon-reload
sudo systemctl restart snapd

(部分 Ubuntu 版本支持)


五、彻底卸载 Snap(不推荐新手 ⚠️)

如果你完全不用 Snap:

1. 卸载所有 Snap 应用

snap list | awk 'NR>1{print $1}' | xargs -r sudo snap remove

2. 卸载 snapd

sudo apt purge snapd
sudo apt autoremove

3. 防止被重新安装

sudo apt-mark hold snapd

⚠️ 注意:Ubuntu 22.04+ 的 Software Center / Firefox 默认是 Snap,卸载可能影响使用。


六、常见误区

❌ 直接删 /var/lib/snapd/snaps 文件
✅ 必须用 snap remove

❌ 认为 apt autoremove 会清理 Snap
✅ 不会


七、总结(最实用方案)

普通用户推荐:

snap list --all
# 删除 disabled 的旧版本

服务器用户推荐:

  • 定期跑旧版本清理脚本
  • 或干脆卸载 snapd

如果你愿意,可以告诉我:

  • Ubuntu 版本
  • 是否服务器
  • 磁盘被占多少

我可以帮你写定制清理命令。

0 踩