ᕕ( ᐛ )ᕗ Jimyag's Blog

Ubuntu 完全卸载 snap

已经确认 snapd 是无法禁用的,只能强制删除。以下操作无需停止 snapd 服务。

删掉所有的已经安装的 Snap 软件

snap list 用于查看已经安装的 Snap 软件,通过脚本全部删除:

1
2
3
for p in $(snap list | awk '{print $1}'); do
  sudo snap remove $p
done

一般需要执行两次(桌面版三次),提示如下则正确执行:

1
2
3
snap "Name" is not installed
core20 removed
snapd removed

再次执行,提示如下,表明已经删除干净:

1
No snaps are installed yet. Try 'snap install hello-world'.

删除 Snap 的 Core 文件

1
2
3
4
5
6
sudo systemctl stop snapd
sudo systemctl disable --now snapd.socket

for m in /snap/core/*; do
   sudo umount $m
done

删除 Snap 的管理工具

1
sudo apt autoremove --purge snapd

删除 Snap 的目录

1
2
3
4
5
rm -rf ~/snap
sudo rm -rf /snap
sudo rm -rf /var/snap
sudo rm -rf /var/lib/snapd
sudo rm -rf /var/cache/snapd

配置 APT 参数:禁止 apt 安装 snapd

正确配置(参看 apt_preferences):

1
2
3
4
5
sudo sh -c "cat > /etc/apt/preferences.d/no-snapd.pref" << EOL
Package: snapd
Pin: release a=*
Pin-Priority: -10
EOL

同时禁用 snap Firefox 的更新(Server 版也可以配置):

1
2
3
4
5
sudo sh -c "cat > /etc/apt/preferences.d/no-firefox.pref" << EOL
Package: firefox
Pin: release a=*
Pin-Priority: -10
EOL

#Linux #Ubuntu