判断包管理器需先执行cat /etc/os-release:id=ubuntu或debian用apt,id=rhel/centos/fedora旧版用yum、新版用dnf;yum remove不删配置文件,apt purge才彻底卸载并需配合autoremove清理依赖。

卸载软件不能只看命令字面意思,得先确认系统用的是哪个包管理器—— yum remove 和 apt purge 根本不兼容:前者只在 RHEL/CentOS(旧版)上有效,后者只在 Ubuntu/Debian 上可用。混用会直接报 command not found。
怎么判断该用 yum 还是 apt?
先执行 cat /etc/os-release,重点看两行:
-
ID=ubuntu或ID=debian→ 用apt系列命令 -
ID="rhel"、ID="centos"、ID="fedora"→ 旧版 CentOS/RHEL 用yum,新版(CentOS 8+/RHEL 8+/Fedora)默认用dnf - 如果
yum报错但dnf可用,别硬切回 yum,直接用dnf remove
yum remove 默认不删配置文件,且无内置 purge 选项
yum remove 软件名 会卸载主程序,但 /etc/ 下的配置、/var/lib/ 中的数据目录全留着。这不是 bug,是设计行为。
- 想手动清配置?先查位置:
rpm -qc 软件名(列出所有配置文件路径) - 常见残留点:
/etc/sysconfig/软件名、/etc/软件名.conf、/var/log/软件名/ - 强制跳过依赖检查(仅调试用):
sudo rpm -e --nodeps 软件名,但可能破坏系统一致性
apt purge 才是真正“连根拔起”,但 autoremove 必须跟上
sudo apt purge 软件名 会删二进制、配置、维护脚本,但不会动其他包装的依赖项——哪怕那些依赖只剩它一个在用。
- 必须补一句:
sudo apt autoremove,否则libxyz这类孤立库一直占空间 - 误删后恢复?
apt install 软件名会重装,但配置不恢复(因为 purge 已清空) - 如果
apt purge报Package 'xxx' is not installed,可能是包名不对,先查:dpkg -l | grep -i 关键词
手动安装的 .deb/.rpm 包不能用 yum 或 apt 卸载
比如你下载了 code_1.86.0-1674259567_amd64.deb 并用 sudo dpkg -i 装的,apt purge 可能识别不到包名(它注册的是 code,不是完整文件名)。
- 查真实包名:
dpkg -l | grep -i code或rpm -qa | grep -i code - Debian 系强制清除:
sudo dpkg --purge 包名(不是文件名!) - RPM 系强制清除:
sudo rpm -e --nodeps --noscripts 包名,之后再sudo find /usr -name "*code*" -delete 2>/dev/null扫残余
最常被忽略的一点:用户级配置(~/.config/软件名、~/.local/share/软件名)从不被任何包管理器自动清理,得自己 ls -la ~ | grep -i 软件名 手动删。











