如何卸载并可能删除旧的Ubuntu Core快照

当我输入时:
$ mount|grep snap
/var/lib/snapd/snaps/ubuntu-core_352.snap on /snap/ubuntu-core/352 type squashfs (ro,relatime)
/var/lib/snapd/snaps/ubuntu-core_423.snap on /snap/ubuntu-core/423 type squashfs (ro,relatime)
/var/lib/snapd/snaps/ubuntu-core_122.snap on /snap/ubuntu-core/122 type squashfs (ro,relatime)

我看到有几个旧的快照“挂载”并可用,而只有最新版本被用作当前/snap/ubuntu-core中。
这不是什么大问题,但我需要旧的Ubuntu Core吗?这不是一个bug吗,为什么它们没有被删除?我可以简单地卸载和删除这些文件吗?
4个回答

  sudo snap remove core --revision 122
  sudo snap remove core --revision 352

所以,基本上通过命令行传递修订版本。

要检查已安装的版本,您需要使用snap list [snap-name] --all


4考虑到当前的软件包名称,最新的命令看起来是这样的:sudo snap remove core --revision 122 - dess
4使用命令 snap list --all 可以列出所有已安装的软件包及其所有版本。同时,您还可以参考如何移除所有已禁用的 snap 软件包。 - Pablo Bianchi

完全删除snap core、snap和已挂载的文件系统:
列出已安装的snap核心 snap list --all 应该会给你类似以下的结果: Name Version Rev Tracking Publisher Notes core 16-2.41 7713 stable canonical✓ core,disabled core 16-2.42 7917 stable canonical✓ core 首先删除禁用的核心 snap remove core --revision 7713 注意步骤1中的Rev列应与--revision匹配。
卸载snapd(在Ubuntu上: apt-get purge snapd
查看snap是否仍然挂载(例如 df -H)会得到类似以下的结果: /dev/loop0 94M 94M 0 100% /snap/core/7917 然后卸载它 umount /snap/core/7917 但这不是必须的。
如果仍然有挂载的文件系统,你应该尝试手动清理/etc/systemd/system/snap-core-* 这些文件。
下次当你的服务器重新启动时,快照将不会存在,除非你出于某种原因再次安装/移除snapd...

所以我卸载了旧的快照:
sudo umount /snap/ubuntu-core/122

然后进行了一些手动清理
sudo rmdir /snap/ubuntu-core/122
sudo rm /var/lib/snapd/snaps/ubuntu-core_122.snap

另一个也一样。天空还没有塌下来……但是。

在我的情况下,最后一个命令 sudo rm /var/lib/snapd/snaps/ubuntu-core_122.snap 是不必要的。 - Serge Stroobandt
这里有一个自动化多个挂载点的Gist。它并不会实际运行命令,只是打印出你需要运行的命令,这很容易修改。 - tsbertalan
你的脚本移除了所有的快照。这不是你想要的! - solsTiCe
sudo: unmount: 命令未找到....? - Rabbit
太好了!终于找到了一种方法来移除snapd不知何故忘记并且在sudo snap list --all中没有列出的快照。不知为何,这种情况发生在我使用openscad-nightly快照时。 - tanius

这样做是为了让您可以使用 snap revert 回滚到旧的 snap 版本。