虽然
heslant的回答基本准确,指出
snap list
命令只显示包的最新两个版本,但值得强调的是,实际上保留了相当数量的缓存快照(正如他和
Milan Bojovic在链接的来源中指出的,尽管没有得到足够的强调)。
$ snap list lxd --all
Name Version Rev Tracking Publisher Notes
lxd git-5a1faae 25306 latest/edge canonical✓ held
lxd git-752650e 25381 latest/edge canonical✓ disabled,held
实际上,我的系统中有以下的.snaps文件。
$ sudo ls -lah /var/lib/snapd/snaps/
total 8.5G
drwxr-xr-x 3 root root 4.0K Aug 21 22:07 .
drwxr-xr-x 23 root root 4.0K Aug 21 18:20 ..
-rw------- 1 root root 165M May 3 01:15 lxd_24758.snap
-r--r--r-- 1 1000000 1000000 170M Aug 21 22:05 lxd_24817.snap <- transferred from other machine (May 3)
-rw------- 1 root root 174M Jun 16 20:10 lxd_24988.snap
-rw------- 1 root root 174M Jun 17 02:50 lxd_24994.snap
-rw------- 1 root root 174M Jun 17 15:45 lxd_24999.snap
-rw------- 1 root root 174M Jun 19 14:21 lxd_25003.snap
-rw------- 2 root root 174M Jun 20 02:30 lxd_25009.snap
-rw------- 2 root root 174M Jun 21 01:15 lxd_25013.snap
-rw------- 2 root root 174M Jun 21 22:10 lxd_25027.snap
-rw------- 2 root root 174M Jun 22 07:55 lxd_25042.snap
-rw------- 2 root root 174M Jun 22 15:16 lxd_25050.snap
-rw------- 2 root root 174M Jun 22 21:51 lxd_25056.snap
-rw------- 2 root root 174M Jun 23 03:36 lxd_25063.snap
-rw------- 2 root root 174M Jun 26 19:55 lxd_25075.snap
-rw------- 2 root root 174M Jun 28 00:50 lxd_25092.snap
-rw------- 2 root root 174M Jun 29 04:25 lxd_25097.snap
-rw------- 1 root root 174M Jul 6 23:11 lxd_25128.snap
-rw------- 1 root root 176M Jul 7 04:01 lxd_25136.snap
-rw------- 1 root root 176M Jul 7 11:45 lxd_25144.snap
-rw------- 1 root root 176M Jul 7 12:41 lxd_25154.snap
-rw------- 2 root root 176M Jul 11 07:00 lxd_25186.snap
-rw------- 2 root root 176M Jul 11 13:21 lxd_25197.snap
-rw------- 2 root root 176M Jul 12 00:45 lxd_25224.snap
-rw------- 2 root root 176M Jul 12 09:51 lxd_25228.snap
-rw------- 2 root root 176M Jul 13 07:45 lxd_25234.snap
-rw------- 2 root root 176M Jul 13 16:11 lxd_25239.snap
-rw------- 2 root root 176M Jul 14 09:10 lxd_25246.snap
-rw------- 2 root root 176M Jul 15 18:35 lxd_25253.snap
-rw------- 2 root root 176M Jul 17 14:45 lxd_25269.snap
-rw------- 2 root root 176M Jul 18 16:00 lxd_25285.snap
-rw------- 2 root root 176M Jul 19 10:20 lxd_25292.snap
-rw------- 1 root root 176M Jul 20 05:30 lxd_25306.snap
-rw------- 1 root root 176M Jul 20 15:30 lxd_25313.snap
-rw------- 1 root root 176M Jul 21 07:30 lxd_25319.snap
-rw------- 1 root root 176M Jul 24 07:01 lxd_25332.snap
-rw------- 1 root root 176M Jul 26 00:00 lxd_25345.snap
-rw------- 1 root root 176M Jul 26 14:05 lxd_25357.snap
-rw------- 2 root root 176M Jul 27 09:10 lxd_25364.snap
-rw------- 2 root root 176M Jul 27 20:30 lxd_25371.snap
-rw------- 2 root root 176M Jul 29 10:05 lxd_25376.snap
-rw------- 2 root root 176M Aug 3 20:10 lxd_25381.snap
drwxr-xr-x 2 root root 4.0K Apr 10 2020 partial
而还原的过程就像执行一个简单的命令一样直接。
$ sudo snap install /var/lib/snapd/snaps/lxd_24817.snap
lxd git-49b9c78 from Canonical✓ installed
$ snap list lxd --all
Name Version Rev Tracking Publisher Notes
lxd git-5a1faae 25306 latest/edge canonical✓ disabled,held
lxd git-49b9c78 24817 latest/edge canonical✓ held
最后,我们可以通过输入命令
停止自动更新特定的快照。
sudo snap refresh --hold lxd
P.S. 我已经搜索了这个解决方案,以恢复一个在最近的版本中被“修复”的功能,但是我很难找到之前的snap版本。讽刺的是,它就在那里,近在咫尺。
然而,目前对于这个snap的自动更新对我来说并不可行(至少暂时如此)。