apt purge仅删二进制、/etc和/var/lib配置,不触~/.config等用户目录;彻底卸载需三步:先用对应包管理器清主体,再手动删用户级残留,最后扫系统级死角并验证。

apt purge 不等于“彻底卸载”——它只删 /etc 和 /var/lib 下的配置,但用户目录里的 ~/.config、~/.cache、~/.local/share 全部保留。真正“彻底”,必须分三步走:先清包管理器记录,再删用户级残留,最后扫系统级死角。
怎么确认软件是用什么装的
敲错命令等于白干。比如在 Fedora 上对 Snap 装的软件跑 dnf remove,压根不动它;在 Ubuntu 上对源码编译装的软件跑 apt purge,查不到任何记录。
- APT 系(Ubuntu/Debian):
dpkg -l | grep -i 软件名或apt list --installed | grep 软件名 - DNF 系(Fedora/RHEL 8+):
dnf list installed | grep 软件名 - RPM 手动装:
rpm -qa | grep -i 软件名(注意输出的是完整包名,如firefox-120.0.1-1.fc39.x86_64) - 源码安装:
which 软件名返回路径若含/usr/local/bin、/opt/xxx或~/bin,基本就是手动装的
不同包管理器的 purge 行为差异
所有主流包管理器默认都“故意”留下用户主目录内容,这不是 bug,是设计原则:你改过的配置、缓存、历史,它们认为该由你决定去留。
-
apt purge 软件名:删二进制 +/etc下所有配置 +/var/lib状态数据;不碰~/.config等 -
dnf remove 软件名:只删程序文件;/etc/软件名.conf和~/.config/软件名全部保留;加--setopt=clean_requirements_on_remove=True可能清部分/etc文件,但不保证 -
pacman -Rns 软件名:删程序 + 孤立依赖 +/etc下配置;但~/.local/share/软件名这类数据目录不动 - Snap:
sudo snap remove --purge 软件名,否则/var/snap/和~/snap/一直占空间 - Flatpak:
flatpak uninstall --delete-data 软件名,否则~/.var/app/软件名不清
必须手动清理的三类残留
包管理器几乎从不碰用户主目录里的内容——这不是疏忽,是明确的设计原则。你得自己动手。
-
用户级配置与数据:用
ls -la ~/.config ~/.local/share ~/.cache | grep -i 软件名快速定位;安全删除前先确认路径,例如rm -rf ~/.config/wechat ~/.local/share/wechat -
系统级残留:运行
sudo find /etc /var/lib -path "*/软件名*" -o -path "*/软件名/*" 2>/dev/null查找;重点检查/etc/systemd/system/软件名*.service、/usr/lib/systemd/user/软件名*.service -
全局搜索漏网之鱼:慎用但必要时执行
sudo find / -name "*软件名*" -type d 2>/dev/null | grep -v "proc\|sys\|dev";注意避开/proc、/sys、/dev等虚拟文件系统
源码安装和 Snap/Flatpak 的特殊处理
这两类最易被忽略,且残留顽固。源码没 make uninstall 就等于没卸载入口;Snap/Flatpak 不带 --purge 或 --delete-data 就等于只卸了壳。
- 源码安装:优先回原编译目录执行
sudo make uninstall;若不可行,按./configure --prefix=指定路径反推,例如装到/opt/myapp就直接sudo rm -rf /opt/myapp;再查make install日志或DESTDIR记录 - Snap:
sudo snap remove --purge 软件名后,再运行sudo snap list --all | grep 软件名,对已禁用版本用sudo snap remove 软件名 --revision=xxx彻底清除 - Flatpak:
flatpak uninstall --delete-data 软件名后,检查~/.var/app/软件名是否还存在;若还在,手动rm -rf ~/.var/app/软件名
~/.config 下的残留常导致重装后行为异常,而 /etc/systemd/system/ 里残留的服务单元可能开机自启——这些点最容易被跳过。











