Ubuntu Snap 兼容性与禁用实操

Ubuntu Snap 影响范围

一、Snap 影响软件范围

Ubuntu 19.10 及以上版本默认将部分桌面应用迁移至 Snap 分发,官方 APT 源内多款软件为 Snap 占位包,安装后会默认部署 Snap 版本而非原生 DEB 程序。

受影响的常用系统及桌面软件如下:

  • 浏览器:Firefox、Chromium

  • 办公系统工具:LibreOffice、GNOME 文本编辑器、计算器、系统监视器

  • 多媒体工具:VLC

  • 开发工具:VS Code

系统默认常驻 snapd 后台服务,占用内存、磁盘资源,增加系统开机启动耗时。

查询系统已安装所有 Snap 应用:

1
snap list

二、Snap 对 APT 与 DEB 包的影响

2.1 无冲突场景

系统底层组件、内核、硬件驱动、服务端程序(Nginx、MySQL)、基础命令行工具(Git、Vim)均基于 DEB 分发,APT 核心依赖管理、安装更新逻辑不受 Snap 影响。手动下载的独立 DEB 包、第三方 PPA 软件可通过 aptdpkg 正常安装运行,与 Snap 体系相互独立、互不干扰。

2.2 干扰兼容场景

Ubuntu 官方源内的 Firefox、Chromium 等软件仅为空占位 DEB 包。通过 APT 执行安装命令时,系统会自动触发 Snap 部署流程,无法安装原生 DEB 版本。

2.3 底层运行逻辑

APT 仅负责 DEB 格式软件的依赖解析、安装与管理,不兼容、不接管 Snap 程序。Snap 由独立的 snapd 服务全权管控,二者为系统并行运行的两套包管理体系。

三、Ubuntu 一键彻底禁用 Snap 脚本

3.1 脚本核心能力

停止并锁定 snapd 服务、卸载系统全部 Snap 应用、彻底清理 snapd 组件、锁定禁止系统自动重装、配置 APT 规则屏蔽 Snap 占位包,强制系统优先使用原生 DEB 分发机制。

3.2 完整禁用脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/bash
set -e

# 停止、禁用并锁定 snapd 相关服务
sudo systemctl stop snapd || true
sudo systemctl disable --now snapd.socket snapd.service snapd.seeded.service || true
sudo systemctl mask snapd || true

# 批量卸载系统所有已安装 snap 应用
sudo snap list | awk 'NR>1 {print $1}' | xargs -I {} sudo snap remove {} || true

# 彻底卸载 snapd 主程序
sudo apt purge -y snapd || true

# 锁定 snapd,防止系统自动更新重装
sudo apt-mark hold snapd || true

# 配置APT规则,屏蔽浏览器类Snap占位包
sudo tee /etc/apt/preferences.d/nosnap <<EOF
Package: firefox chromium-browser chromium
Pin: release a=*
Pin-Priority: -10
EOF

# 优化APT依赖推荐策略,减少冗余安装
sudo tee /etc/apt/apt.conf.d/20nosnap <<EOF
APT::AutoRemove::RecommendsImportant "false";
APT::AutoRemove::SuggestsImportant "false";
EOF

# 清理系统残留依赖与缓存
sudo apt autoremove -y
sudo apt clean

3.3 脚本执行方式

1
2
chmod +x disable-snap.sh
sudo ./disable-snap.sh

3.4 执行效果

Snap 命令完全失效,系统无法部署运行 Snap 应用;APT 安装浏览器不再跳转 Snap 版本;系统升级、更新流程不会自动重装 snapd 服务,彻底固化 DEB 包管理模式。

四、安装原生 DEB 版 Firefox

禁用 Snap 后,Ubuntu 官方源无原生 DEB 版 Firefox,可通过 Mozilla 官方 PPA 安装正版原生 DEB 版本:

1
2
3
sudo add-apt-repository ppa:mozillateam/ppa
sudo apt update
sudo apt install firefox

五、Snap 环境恢复方案

如需恢复系统默认 Snap 运行环境,执行以下命令解除锁定、恢复配置并重装服务:

1
2
3
4
5
6
sudo apt-mark unhold snapd
sudo rm /etc/apt/preferences.d/nosnap
sudo rm /etc/apt/apt.conf.d/20nosnap
sudo apt install snapd
sudo systemctl unmask snapd
sudo systemctl enable --now snapd

六、总结

Snap 仅作用于 Ubuntu 默认桌面应用,不会破坏系统底层及 APT、DEB 核心运行机制。通过专属脚本可彻底关停 Snap 整套体系,屏蔽 APT 占位包跳转逻辑,全程保留原生 DEB 包管理模式,适配 Ubuntu 20.04、22.04、24.04 主流版本,适用于生产环境运维标准化部署。