跳至内容
在Ubuntu中彻底删除SNAP

在Ubuntu中彻底删除SNAP

January 26, 2026

环境:Ubuntu 24.04 lts

Snap

snap是什么?

Ubuntu中的snap是一种由Canonical开发的、现代化的容器化软件包管理系统。 Ubuntu是预装了snap的 就是下面这个小玩意 打开后的界面 一个类似于软件商店的东西,那为什么要删除它呢?个人的体验和感受是缺点太多,不好用。

缺点

Snap的缺点主要集中在性能、生态系统限制、集中化控制以及用户体验等等方面,它还违背了Linux操作系统的理念与精神。

🐌 性能和资源消耗

  • 启动速度慢: Snap应用通常比传统的.deb包或原生的应用启动要慢,尤其是在第一次启动时。
  • 占用空间大: 由于 Snap应用将所有依赖项都打包在内(自包含),因此它们占用的磁盘空间通常比非Snap版本要大得多。
  • 内存占用高: 你可以在很多论坛中见到一些用户反映Snap应用会占用更多内存资源。
  • 系统资源消耗: 安装和运行多个Snap包可能会使系统启动和关机速度变慢。

🔒 生态系统和集中化

  • 单一应用商店: Snap生态系统被Canonical高度集中控制,所有Snap包都必须来自SnapCraft商店。用户无法像使用aptFlatpak那样添加第三方仓库(repository)。
  • 垄断担忧: 这种集中化的模式引发了关于Canonical垄断和控制Linux软件分发渠道的担忧。
  • 私有后端: Snap商店的后端是私有的,而不是像传统 Linux软件包管理那样开放透明。

⚙️ 系统集成和用户体验

  • 糟糕的桌面集成: Snap应用可能会遇到无法正确显示系统主题、字体或无法与桌面环境的拖放等功能正常工作的问题。
  • 受限的功能: 一些Snap版本的应用功能会受到限制,不如非 Snap 版本完整。
  • 权限问题: 由于Snap的沙盒(Sandboxing)机制,用户可能会遇到与文件系统访问或权限相关的小烦人bug。
  • 强制自动更新: Snap默认强制自动更新,这对于某些需要特定版本或稳定性的应用(如数据库、开发环境)来说可能是个大问题。
  • 命令行错误信息不友好: 某些Snap错误信息可能只显示PID(进程 ID)等技术细节,对普通用户不友好,需要到终端手动解决。

📦 兼容性和限制

  • 对 AppArmor 的依赖: Snap的沙盒功能严重依赖于 AppArmor(Linux 内核安全模块)。在没有AppArmor配置或不适用的其他发行版上,其安全性可能无法得到保障。
  • 与系统设置不兼容: Snap应用可能不尊重你的系统设置或某些底层配置。

Snap的行为很明显已经违背了Linux操作系统的核心理念与精神,在开源与自由的Linux中,是不太可能受到欢迎的。

删除Snap

备份

为了安全起见,删除前记得做备份

虚拟机

打个快照即可,以VMware Workstation举例如下图 可以取一个名称,并写上相应的描述

主机

这里我没有电脑是安装了Ubuntu系统的只能用虚拟机来演示了

在自己电脑上安装Ubuntu系统的话,是没有办法像虚拟机一样随时拍快照,随时进行恢复的,这里我们使用Time Shift工具来备份系统。 TimeShift 是一款 Linux 上的系统快照工具,用于备份系统文件和设置,以便在系统崩溃或更新失败时,快速将系统恢复到先前的工作状态。

  1. 下载Time Shift
sudo apt install timeshift -y

  1. 打开timeshift
  2. 选择快照类型为RSYNC
  3. 备份根目录和用户目录
  4. 创建备份(耐心等待一会) 这样备份就做完了

删除

先查看snap都安装了哪些软件

snap list

开始删除操作前,请先确保后台没有运行其他程序,这里会删除firefox,可以先安装一个Google浏览器下载地址: https://www.google.com/chrome/

安装Google Chrome(不需要可以跳过)

下载对应的软件包deb格式 点击下载后,可以在download目录找到它 使用以下命令进行安装

chmod a+x google-chrome-stable_current_amd64.deb
sudo dpkg -i ./google-chrome-stable_current_amd64.deb

这样就是安装完成了 好了接下来,我们可以开始删除软件了

删除软件包

输入并执行以下命令完成删除,注意包与包之间存在依赖关系,最好是按这个顺序去删除

sudo snap remove firefox
sudo snap remove gtk-common-themes
sudo snap remove gnome-42-2204
sudo snap remove snapd-desktop-integration
sudo snap remove snap-store
sudo snap remove firmware-updater
sudo snap remove bare
sudo snap remove thunderbird
sudo snap remove core22
# 最后删除snapd
sudo snap remove snapd

这里能够发现有一个错误,原因是:thunderbird正在使用core22,先删除thunderbird,再删除core22就好了。 删除完所有软件后,再次使用snap list查看 这样就是删完了

停止snapd服务

sudo systemctl stop snapd
# 禁止开机自启动snapd
sudo systemctl disable snapd
# 彻底禁用并阻止snapd服务启动
sudo systemctl mask snapd

apt卸载snapd

# 不仅会删除snapd软件包本身,还会删除其相关的所有配置文件
sudo apt purge snapd -y
# 阻止snapd软件包被APT软件包管理器升级、安装(锁定版本)
sudo apt-mark hold snapd

删除残留文件

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

阻止snap重新安装

编辑配置文件/etc/apt/preferences.d/nosnap.pref

sudo nano /etc/apt/preferences.d/nosnap.pref

将以下内容写入这个配置文件:

Package: snapd
Pin: release a=*
Pin-Priority: -10

按住Ctrl + O保存,Ctrl + X退出 这个配置文件,作用是利用APT的优先级机制,强制将snapd软件包的安装和升级优先级设置为极低,从而有效地阻止APT自动安装或推荐安装snapd。 配置完成后,输入sudo apt update更新apt源列表 做到这里,我们已经成功的在Ubuntu系统中删除了所有的snap软件包。删除snap后,Ubuntu就没有图形界面的软件商店了,如果需要使用图形界面化来安装软件,可以选择安装GNOME软件商店

sudo apt install --install-suggests gnome-software

安装完成后,可以找到它(中文为:软件,英文为:software)如下图所示: 最后的最后重启电脑

sudo reboot now

恢复Snap

打开timeshfit,点击恢复,默认下一步即可