在Ubuntu 22.04中,Snap作为Canonical推出的容器化软件包格式,虽然提供了跨版本兼容性,但存在软件包体积大、性能开销高等问题。本文将详细介绍如何彻底卸载Snap并防止其自动恢复。

卸载步骤

查看已安装的Snap软件

首先列出所有已安装的Snap软件包,为后续卸载做准备:

snap list

输出示例:

Name    Version  Rev  Tracking  Publisher  Notes
core20  20240416 2318 latest/stable canonical✓  base
firefox  125.0    1943  latest/stable mozilla✓  -

移除所有Snap软件

手动逐个移除

按顺序移除软件(先移除应用,再移除核心依赖):

sudo snap remove --purge firefox
sudo snap remove --purge snap-store
sudo snap remove --purge core20
sudo snap remove --purge snapd

脚本批量移除

使用循环脚本移除所有Snap软件(需执行2-3次直到提示"No snaps installed"):

for p in $(snap list | awk '{print $1}' | grep -v "Name"); do
  sudo snap remove --purge "$p"
done

验证是否移除干净

snap list

若提示 No snaps are installed yet. 则表示已清理完成。

停止并禁用Snap服务

sudo systemctl stop snapd
sudo systemctl disable --now snapd.socket snapd.service snapd.seeded.service

验证服务状态

systemctl status snapd

若显示 inactive (dead) 则表示服务已停止。

卸载Snap管理工具

通过APT彻底移除snapd及其依赖:

sudo apt autoremove --purge snapd

清理残留文件和目录

删除Snap相关的残留目录和文件:

rm -rf ~/snap
sudo rm -rf /snap /var/snap /var/lib/snapd /var/cache/snapd

处理只读文件系统错误
若卸载时提示 read-only file system,需先停止相关挂载点:

sudo systemctl stop var-snap-firefox-common-host\x2dhunspell.mount
sudo systemctl disable var-snap-firefox-common-host\x2dhunspell.mount

再重新执行删除命令。

禁止APT自动安装Snap

创建APT配置文件防止snapd被自动安装:

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

验证效果

sudo apt install snapd

若提示 Package 'snapd' has no installation candidate 则表示配置生效。

可选:屏蔽Firefox的Snap更新

若需彻底禁用Firefox的Snap版本更新:

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

安装Deb版替代软件(可选)

安装Gnome软件商店(Deb版)

sudo apt install gnome-software

安装Deb版Firefox

  1. 添加Mozilla官方PPA:

    sudo add-apt-repository ppa:mozillateam/ppa
    sudo apt update
  2. 设置PPA优先级并安装:

    sudo sh -c "cat > /etc/apt/preferences.d/mozillateam-firefox.pref" << EOL
    Package: firefox*
    Pin: release o=LP-PPA-mozillateam
    Pin-Priority: 501
    EOL
    sudo apt install firefox

恢复Snap(如需)

删除配置文件并重新安装Snap:

sudo rm /etc/apt/preferences.d/no-snapd.pref /etc/apt/preferences.d/no-firefox.pref
sudo apt update
sudo snap install snap-store
sudo apt install firefox

总结

  • 关键步骤:移除软件 → 停止服务 → 清理残留 → 禁止自动安装。
  • 注意事项:
    • 卸载前备份重要数据(如Firefox书签)。
    • 服务器版无需安装桌面环境替代软件。
    • 若遇到只读文件系统错误,需先停止相关挂载点

通过以上步骤,可彻底禁用Snap并释放系统资源。