Ubuntu彻底卸载软件需四步:一、用sudo apt purge删除软件及/etc等系统配置;二、执行sudo apt autoremove --purge清理依赖及配置;三、手动删除~/.config等用户级残留目录;四、用dpkg -l | grep "^rc" | awk '{print $2}' | xargs sudo apt purge清除rc状态包;Snap/Flatpak软件须分别用snap remove或flatpak uninstall --delete-data处理。

在Ubuntu系统中卸载软件后,发现/etc目录下还留着配置文件、~/.config里还有残留设置、dpkg -l里显示rc状态包——这说明只执行了remove,没真正清掉配置和状态。
用apt purge彻底删除软件及全部配置文件
这一步是核心,必须用purge而非remove,否则所有配置文件原封不动保留在/etc、/usr/share等位置,下次重装会直接读取旧配置导致异常。
打开终端(Ctrl+Alt+T)。
执行命令:sudo apt purge package_name,把package_name替换成你要卸载的软件名,例如sudo apt purge vlc。
输入y并回车确认卸载。此时APT不仅删除二进制文件,还会递归清除/etc下的主配置目录、/usr/share/doc中的文档、/lib/systemd/system里的服务单元文件——这些是remove命令完全跳过的。
清理卸载后残留的依赖包和缓存
purge只处理目标软件本身,它拉进来的依赖包可能还在系统里躺着占空间,尤其是那些只被该软件用到的库。
运行:sudo apt autoremove --purge。这个--purge参数很关键,它会让autoremove连带清除已被卸载软件的依赖包的配置文件,而不是只删二进制。
再执行:sudo apt autoclean。它只删/var/cache/apt/archives/里已无法安装的老deb包,安全且必要。
如果想清空整个APT缓存(包括当前可用但未安装的包),用sudo apt clean——但注意这会强制后续update重新下载索引,适合磁盘严重不足时才用。
手动清除用户级配置与数据目录
apt purge管不了你家目录里的东西,而绝大多数GUI软件都会在~/.config、~/.local/share、~/.cache下写入个人设置、数据库、缓存文件,这些必须人工干预。
先检查是否存在对应目录:ls -la ~/.config | grep -i "软件名小写"(如grep -i vlc)。
确认无误后,逐个删除:rm -rf ~/.config/vlc ~/.local/share/vlc ~/.cache/vlc。注意别漏掉点开头的隐藏目录,也别手抖多删了其他配置。
这一步不能跳过。比如pgadmin4卸载后不删~/.pgadmin,重装就会自动恢复旧服务器连接记录;vlc不删~/.config/vlc,下次启动界面布局、播放历史全都是旧的。
清除dpkg标记为“rc”的残留包
有时purge执行失败或中断,会导致包状态卡在“rc”(removed config)——软件本体没了,但配置文件还在dpkg数据库里挂着,后续apt操作可能报冲突。
第一步:列出所有rc状态包:dpkg -l | grep "^rc"。
第二步:提取包名并批量purge:dpkg -l | grep "^rc" | awk '{print $2}' | xargs sudo apt purge。
第三步:强制刷新dpkg数据库:sudo dpkg --configure -a,修复可能存在的半配置状态。
针对Snap或Flatpak安装的软件
如果你装的是snap版vscode、flatpak版obs,apt purge完全无效,它们走的是独立沙箱机制。
方法一(Snap):执行sudo snap remove package_name,例如sudo snap remove code;Snap默认自带--purge语义,无需额外加参数。
方法二(Flatpak):运行flatpak uninstall --delete-data package_name,注意必须加--delete-data,否则用户数据(如~/.var/app/org.signal.Signal/)不会被清掉。


















