如何删除旧的快照版本以释放磁盘空间


最近,我使用磁盘使用率分析器来查看是否可以释放Ubuntu 18.10桌面上的一些空间。 /var/lib/snapd/snaps/ 该文件夹非常大。

研究释放一些空间/清除快照缓存的方法 /var/lib/snapd/snaps/ 如果转到文件夹而不删除已安装的快照软件包,则会发现默认情况下,更新快照软件包后,系统会保存三个快照版本。换句话说,对于每个至少具有两个更新的已安装快照程序包,三个修订版本存储在系统上,占用了大量磁盘空间。
有一个快照选项(快照版本2.34或更高版本)。 refresh.retain设置下一次更新后系统将保存的快照修订的最大数量。您可以在2到20之间设置一个值。您可以使用它从默认值3更改为2。

sudo snap set system refresh.retain=2

相关但对于Flatpak软件包:如何删除未使用的Flatpak运行时以释放磁盘空间,但是如果要删除已更新的snap软件包的所有版本,请删除系统中保留的所有版本 剧本 由Canonical Ubuntu工程社区经理Popey创建,它仅保留当前的活动版本,并删除所有旧版本的snap( LANG=en_US.UTF-8 在非英语语言环境中工作,这要感谢William的评论):

#!/bin/bash
# Removes old revisions of snaps
# CLOSE ALL SNAPS BEFORE RUNNING THIS
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

使用此脚本将释放大量磁盘空间(取决于系统上安装的快照软件包的数量以及自安装以来是否进行了任何更新)。就我而言,脚本缩小了尺寸 /var/lib/snapd/snaps/ 超过50%的文件夹。
更新:该脚本似乎仅适用于英语。对于其他语言,您需要替换 /disabled/ 带有对您的语言的翻译和命令。
要使用此脚本,请创建一个名为 remove-old-snaps粘贴以上代码块的内容,将文件保存到主目录,并使用以下命令使其可执行:

chmod +x remove-old-snaps

运行脚本 sudo 要删除旧的快照修订版(在运行脚本之前关闭所有正在运行的快照):

sudo ./remove-old-snaps

这是在我的系统上运行的脚本,该脚本删除了旧的管理程序包修订版。

$ sudo ./remove-old-snaps

atom (revision 223) removed
atom (revision 222) removed
bitwarden (revision 15) removed
bitwarden (revision 16) removed
canonical-livepatch (revision 50) removed
canonical-livepatch (revision 54) removed
chromium (revision 607) removed
chromium (revision 660) removed
core (revision 6531) removed
core (revision 6405) removed
core18 (revision 719) removed
core18 (revision 731) removed
gallery-dl (revision 36) removed
gallery-dl (revision 167) removed
gimp (revision 110) removed
gimp (revision 113) removed
Sidebar