先确认软件是否为系统关键组件,再决定能否卸载;运行apt policy 软件包名查看来源,apt show 软件包名 | grep Priority判断优先级,apt-cache rdepends --installed检查依赖,非required/importance的optional/extra包可安全卸载,卸载用sudo apt purge加sudo apt autoremove和autoclean,Snap/Flatpak应用须用对应命令卸载并手动清理~/.config等残留目录。

怎么确认软件是系统自带还是自己装的
直接删 ubuntu-desktop 或 gnome-shell 会崩桌面,所以先得搞清它是不是系统关键组件。Ubuntu 的“系统软件”分两类:一类是桌面环境核心(比如 gdm3、nautilus),另一类是预装但非必需的应用(比如 thunderbird、rhythmbox)。误删前者会导致登录失败或界面异常。
判断方法很简单:
- 运行
apt policy 软件包名,看输出里有没有Installed: (none)或版本号带ubuntu字样(说明来自官方源) - 查安装来源:
apt list --installed | grep -i 关键词,再结合apt show 软件包名 | grep Priority—— 如果显示Priority: optional或extra,基本可安全卸载;required或important则别碰 - 不确定时,用
apt-cache rdepends --installed 软件包名看有没有其他已装包依赖它;如果有,删了可能连带影响其他功能
用 apt purge 彻底删掉软件和配置文件
apt remove 只删二进制,留着 ~/.config/ 和 /etc/ 下的配置,下次重装还会读旧设置——这在清理“不用的软件”时反而成负担。真正想清干净,必须用 apt purge。
执行顺序固定:
- 先运行
sudo apt purge 软件包名(例如sudo apt purge totem) - 再跟一句
sudo apt autoremove,自动删掉因该软件被间接装上的依赖包(比如totem依赖的gstreamer1.0-plugins-ugly) - 最后跑
sudo apt autoclean,清掉下载过的 .deb 缓存,省空间
注意:apt purge 不会删用户主目录里的数据(如 ~/.local/share/rhythmbox),这类残留得手动 rm -rf ~/.local/share/软件名 或 ~/.config/软件名。
卸载 Snap/Flatpak 应用不能用 apt
Ubuntu 22.04+ 默认预装不少 Snap 应用(比如 firefox、gnome-calculator),它们和 APT 包互不兼容。用 apt purge 对它们无效,还会报错 Package 'xxx' is not installed。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
正确操作是:
- 查 Snap 包:
snap list | grep -i 关键词 - 卸载:
sudo snap remove 包名(例如sudo snap remove firefox) - 查 Flatpak 包:
flatpak list --app - 卸载:
flatpak uninstall --delete-data 应用ID(加--delete-data才清用户数据)
特别提醒:sudo snap remove core 或 sudo snap remove snapd 会直接破坏整个 Snap 环境,千万别试。
删完还得手动扫残留配置目录
apt purge 和 snap remove 都不碰用户主目录,而很多软件把配置、缓存、数据库全塞进 ~/.config、~/.local/share、~/.cache。这些目录不清理,占空间不说,重装同名软件时还可能出怪问题。
推荐这样扫:
- 先列疑似残留:
ls -la ~/.config | grep -i 关键词、ls -la ~/.local/share | grep -i 关键词 - 确认无用再删:
rm -rf ~/.config/软件名 ~/.local/share/软件名 ~/.cache/软件名 - 如果记不清名字,用
find ~/.config -maxdepth 1 -type d -iname "*关键词*"更准
最易被忽略的是 ~/.local/bin 里手动放的启动脚本,或者 /usr/local/bin 下自己编译装的二进制——这些压根不在包管理器记录里,只能靠人眼识别。

















