apt purge可彻底删除debian/ubuntu软件及其/etc配置;dnf remove默认保留/etc和~/.config;rpm -e不处理依赖;pacman -rns删/etc但不管家目录;源码安装需make uninstall或手动清理。

apt purge 是 Debian/Ubuntu 系统里真正能删掉配置文件的命令;dnf remove 默认不碰 /etc 和 ~/.config;rpm -e 不处理依赖,pacman -Rns 会删 /etc 下配置但不管家目录;源码安装的软件,包管理器压根看不见它。
怎么确认软件是用哪个包管理器装的
敲错命令前先查清来源,否则 apt purge firefox 对 firefox-120.0.1-1.fc39.x86_64 完全无效。
- Debian/Ubuntu:
dpkg -l | grep -i 软件名或apt list --installed | grep 软件名 - Fedora/RHEL 8+:
dnf list installed | grep 软件名 - CentOS 7/RHEL 7:
yum list installed | grep 软件名 - RPM 包(手动装的):
rpm -qa | grep -i 软件名,注意输出的是完整包名,比如vim-enhanced-9.1.1500-1.fc39.x86_64 - 源码安装:
which 软件名返回/usr/local/bin、/opt/xxx或~/bin,基本就是手动装的
不同包管理器的卸载命令和关键差异
同一个“卸载”动作,在不同发行版语义完全不同。不是语法记不住,而是设计逻辑就不一样。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
apt purge 软件名:删二进制 + 删/etc下所有配置 + 删/var/lib相关状态;等价于apt remove --purge 软件名 -
dnf remove 软件名:只删程序文件,/etc/软件名.conf和~/.config/软件名全部保留;加--setopt=clean_requirements_on_remove=True才可能清部分/etc文件,但不保证 -
yum erase 软件名:比yum remove略激进,可能删少量/etc配置,但依然不碰用户目录;autoremove在 CentOS 7 上需手动触发 -
pacman -Rns 软件名:-n删/etc配置,-s递归删孤立依赖;但~/.local/share/软件名这类数据目录不会动 -
rpm -e 软件名:只删 RPM 数据库记录和对应文件,不检查依赖;误删系统关键包(如glibc)会导致系统崩溃
残留配置必须手动清理,包管理器不会帮你动家目录
几乎所有包管理器都遵循“不删除用户数据”原则,所以 ~/.config、~/.cache、~/.local/share 里的内容永远不在卸载范围内——这不是 bug,是设计。
- 查用户级残留:
ls -la ~/.config ~/.local/share ~/.cache | grep -i 软件名 - 安全删除(先确认路径):
rm -rf ~/.config/软件名 ~/.local/share/软件名 ~/.cache/软件名 - 查系统级残留:
sudo find /etc /var/lib -path "*/软件名*" -o -name "*软件名*.conf" 2>/dev/null,逐条判断再删 - 别用
find / -name "*软件名*"全盘扫:可能匹配到日志、临时文件甚至其他软件的字符串,误删风险极高
源码安装的软件怎么卸载
没有统一方案。它不在任何包管理器数据库里,make uninstall 是唯一靠谱的入口,但很多项目根本不提供这个目标。
- 优先查
make help或grep uninstall Makefile,看是否有uninstall规则 - 如果编译时指定了
--prefix=/opt/xxx,就直接rm -rf /opt/xxx,再删PATH中对应的软链(如/usr/local/bin/xxx) - 若生成了
install_manifest.txt(CMake 项目常见),可用cat install_manifest.txt | xargs -d '\n' sudo rm -f反向删除 - 最后用
which 软件名和type -p 软件名确认可执行文件是否真没了










