我安装了一些 snap 包 ( snap install …
)。我可以使用snap list
列出它们。但是我无法分辨哪些是手动安装的,哪些是安装的,因为其他包依赖于它们(auto
在 apt 中)。我想删除自动安装的包(apt autoremove
在 apt 中),(docker system prune
在 docker 中)。
答案1
snap connections | grep XYZ
其中 XYZ 是您想要检查其依赖关系的包。
例如,我的目录中有一堆 Gnome 版本/snap
。我不知道该保留哪些,该删除哪些。于是一时兴起,我卸载了“旧”版本。结果发现有些程序无法再启动,因为它们依赖于已删除的 Gnome 版本。
user@~ $simplenote
ERROR: not connected to the gnome-3-28-1804 content interface.
这是一种很糟糕的方式,让你知道你删除了其他应用程序所需的东西。
当我这样做时snap connections | grep gnome
,输出包括以下几行:
user@~ $snap connections | grep gnome
content[gnome-3-38-2004] firefox:gnome-3-38-2004 gnome-3-38-2004:gnome-3-38-2004 -
content[gnome-3-28-1804] simplenote:gnome-3-28-1804 gnome-3-28-1804:gnome-3-28-1804 -
这表明 Gnome 3.28 和 3.38 版本仍被某些程序使用,不应被删除。
答案2
据我所知,目前没有修剪/自动删除功能,但你可以尝试一下
snap connections
它将列出各种快照提供的连接以及彼此之间和与系统的连接,因此您可以尝试找出哪些快照没有以任何有意义的方式与您实际需要的任何东西相连,然后remove
手动找出它们。
您可以通过运行来检查特定 snap 的连接snap connections <snap>
,例如:
$ snap connections gnome-3-38-2004
Interface Plug Slot Notes
content[gnome-3-38-2004] firefox:gnome-3-38-2004 gnome-3-38-2004:gnome-3-38-2004 -
content[gnome-3-38-2004] gimp:gnome-3-38-2004 gnome-3-38-2004:gnome-3-38-2004 -
content[gnome-3-38-2004] snap-store:gnome-3-38-2004 gnome-3-38-2004:gnome-3-38-2004 -
content[gnome-3-38-2004] snapd-desktop-integration:gnome-3-38-2004 gnome-3-38-2004:gnome-3-38-2004 -
请记住,连接列表不包括作为其他捕捉基础的捕捉关系(例如bare
和所有core
捕捉,即core18
等等core20
)。
感谢这个答案为我指明了正确的方向。
答案3
我可以编写一个脚本来显示未连接的快照:
show-unconnected-snaps
#!/bin/bash
list_connected_snaps_sorted() {
snap connections \
| tail -n +2 \
| awk '{print $1}' \
| sort \
| uniq
}
list_all_snaps_sorted() {
snap list \
| tail -n +2 \
| awk '{print $1}' \
| sort
}
echo "Unconneted snaps:"
(
diff -U0 -u \
<(list_connected_snaps_sorted) \
<(list_all_snaps_sorted) \
) \
| grep '^+' \
| tail -n +2 \
| cut -c2-
希望能帮助到你
答案4
snap remove <snap name>
是一把大锤,但如果存在依赖关系,则会失败。
例如,安装了 Firefox snap 后,尝试删除其核心框架:
snap install firefox
snap remove core20
錯誤狀態snap is being used by firefox
。
还有一些更软的依赖关系,例如
snap install firefox
snap connections | grep gtk-common-themes
snap remove gtk-common-themes