是否有snap
与 Snaps 和 Apt 包等效的命令apt-get autoremove
?apt-get autopurge
(也可用作apt autoremove
......)
更新 3:对于好奇的人以及从 Google 来到此的人来说,FlatPak 的等效命令是flatpak uninstall --unused
。
更新:在收到以下答复后,我想澄清一下这个问题:
Snaps 没有像 apt 这样的依赖项,因此 autoremove 的等效功能似乎没有必要。
这是不正确的。请考虑以下情况(这只是众多示例中的一个):
$ snap list
Name Version Rev Tracking Publisher Notes
bare 1.0 5 latest/stable canonical✓ base
core 16-2.57.6 14399 latest/stable canonical✓ core
core18 20221212 2667 latest/stable canonical✓ base
core20 20221123 1738 latest/stable canonical✓ base
$ sudo snap install nvim --classic
nvim v0.8.1 from neovim-snap (neovim-snap) installed
$ snap list
Name Version Rev Tracking Publisher Notes
bare 1.0 5 latest/stable canonical✓ base
core 16-2.57.6 14399 latest/stable canonical✓ core
core18 20221212 2667 latest/stable canonical✓ base
core20 20221123 1738 latest/stable canonical✓ base
core22 20221129 444 latest/stable canonical✓ base
nvim v0.8.1 2775 latest/stable neovim-snap classic
$ sudo snap remove nvim
nvim removed
$ snap list
Name Version Rev Tracking Publisher Notes
bare 1.0 5 latest/stable canonical✓ base
core 16-2.57.6 14399 latest/stable canonical✓ core
core18 20221212 2667 latest/stable canonical✓ base
core20 20221123 1738 latest/stable canonical✓ base
core22 20221129 444 latest/stable canonical✓ base
$
安装前nvim
,core22
未安装。删除后,core22
虽然没有安装,但仍会保留依靠现在就可以了。
更新 2:在上面的例子中,安装的依赖项core22
是基本快照下面是另一个示例,它表明非基础依赖项也存在同样的问题:
$ sudo snap list
Name Version Rev Tracking Publisher Notes
bare 1.0 5 latest/stable canonical✓ base
core 16-2.57.6 14399 latest/stable canonical✓ core
core18 20221212 2667 latest/stable canonical✓ base
core20 20221123 1738 latest/stable canonical✓ base
core22 20221129 444 latest/stable canonical✓ base
$ sudo snap install falkon
falkon 22.08.2 from KDE✓ installed
$ snap list
Name Version Rev Tracking Publisher Notes
bare 1.0 5 latest/stable canonical✓ base
core 16-2.57.6 14399 latest/stable canonical✓ core
core18 20221212 2667 latest/stable canonical✓ base
core20 20221123 1738 latest/stable canonical✓ base
core22 20221129 444 latest/stable canonical✓ base
falkon 22.08.2 86 latest/stable kde✓ -
kde-frameworks-5-98-qt-5-15-6-core20 5.98.0 9 latest/stable kde✓ -
$ sudo snap remove falkon
falkon removed
$ snap list
Name Version Rev Tracking Publisher Notes
bare 1.0 5 latest/stable canonical✓ base
core 16-2.57.6 14399 latest/stable canonical✓ core
core18 20221212 2667 latest/stable canonical✓ base
core20 20221123 1738 latest/stable canonical✓ base
core22 20221129 444 latest/stable canonical✓ base
kde-frameworks-5-98-qt-5-15-6-core20 5.98.0 9 latest/stable kde✓ -
$
安装并删除falkon
snap 包后,未使用的依赖项kde-frameworks-5-...
就被留下了。
答案1
Snap 自动清理
由于 snap 没有可以就地升级的软件包系统,因此 snap 会提取软件包的依赖项,并保存 snap 的最新 n 个版本的副本
(如果您认为 Snap 将您的本地存储用作包含最后 n 个版本的镜像注册表,那么您是对的)
Snap 自动清洁的当前状态:
事实上,自 2020 年(约 3 年)以来就有一个功能提案,所以也许可以在那里传播一些选票。
Snap 清理/自动清除方法:
您可以获得最接近“自动修剪”的行为:
禁用自动快照,他们的手册说明了一切:
sudo snap set system snapshots.automatic.retention=no
将禁用它自动快照保留时间通过snapshots.automatic.retention系统选项配置,默认值为31天,该值需要大于24小时
...
禁用自动快照不会影响预先存在的、自动生成的快照,而只会影响后续快照删除生成的快照。
清理快照,有一个很好的示例脚本
没有“完全相同”的 apt(-get) 方法来使用 snap 节省更多空间,但最重要的建议包括:
降低 snapd 保留的“旧版本”:
sudo snap set system refresh.retain=2
refresh.retain 值可以是 2 到 20 之间的数字。Ubuntu Core 系统上的默认值为 refresh.retain=3,经典 Ubuntu 系统(例如运行 Ubuntu 18.04 LTS(Bionic Beaver)和 Ubuntu 16.04 LTS(Xenial Xerus)的系统)上的默认值为 refresh.retain=2。
清除缓存:
sudo find /var/lib/snapd/cache/ -exec rm -v {} \; # Remove cache
“危险”的不动部分:使用以下方法锁定更新refresh --hold
前言:您可能会遇到过时的软件并导致安全问题,因此请小心并通过重新安装或解除锁定定期更新。
另一个问题还包括:
甚至将无人值守安装限制为 Canonical 支持的软件
出色地
目前没有找到任何方法可以做到这一点,除了“固定”(快照术语“刷新保持”)
操作方法:快速固定
- 从 2.58+ 开始,有刷新锁保持(相当于 apt pinning)
- 它可能针对一个或所有包裹发出,有或没有时间限制
snap refresh --hold
“应该”锁定所有更新- 一个具体的例子是
sudo snap refresh --hold=24h firefox
操作方法:更新 snapd“固定”软件
要更新的变体 A(Firefox 示例),要么
sudo snap remove --purge firefox;sudo snap install firefox;sudo snap refresh --hold
更新版本 B
sudo snap refresh --unhold firefox;sudo snap refresh firefox;sudo snap refresh --hold
答案2
查找了一段时间后,很明显目前没有等效的命令。