如何在不破坏AppArmor的情况下安全地移除Snap?

我想完全从我的系统中移除Snap,但是有一个小问题:
首先,我已经移除了所有的Snap软件包:
sudo snap remove $(snap list | tail -n +2 | cut -d" " -f1 | grep -v core | tr "/n" " ")

然后我移除了snapd和gnome snap插件。
sudo apt remove -y snapd gnome-software-plugin-snap

问题是在重新启动时,Apparmor正在寻找snap的配置文件,并且无法解析snap的配置文件。
Feb 21 21:40:47 dad apparmor[698]: AppArmor parser error for /var/lib/snapd/apparmor/profiles/snap-confine.core.5662 in /var/lib/snapd/apparmor/profiles/snap-confine.core.5662 at line 11: Could not open '/var/lib/snapd/apparmor/snap-confine'

这让我拥有一个运行中的系统,但没有apparmor!
1个回答

AppArmor配置文件位于/etc/apparmor.d/usr.lib.snapd.snap-confine.real文件中,该文件来自snapd软件包。

因此,您应该使用apt purge而不是apt remove(详情请参阅man apt):

sudo apt purge snapd

小贴士:对我来说,下面的片段看起来更好 -
snap remove $(snap list | awk '{print $1}' | egrep -v "Name|core")

我使用了清除功能,并且有一行特别指出已删除了apparmor配置文件! - Charles Green
那个效果不错。我打算看一下“remove”和“purge”的区别,然后我应该找到sudo apt remove snap并修改那些答案。 - Charles Green
1太棒了!man apt中指出了这些差异。看起来Dobey做得很对 :) - N0rbert
我考虑过用ASK来写这段小代码,但是几天前我看到了另一个版本,它让我对shell有了更深入的了解。 - Charles Green