remove与purge
很多package是有配置文件的。不管你是使用apt还是aptitude,只要是用默认的remove删除,都只是删除程序文件,保留配置文件的;而使用purge则是一个不留的全部删除。
清理废弃包
使用aptitude来自动检测并删除已经废弃的包。
作废包通常是前述的又了更新版本的同名包,或者是source不存在的包。
查看 (以下3个等价) aptitude search "~o" aptitude search ~o aptitude search ?obsolete # 清除 sudo aptitude purge "~o"
这个清除命令会考虑包之间的依赖关系,把依赖这些作废包的其他包也一并删除掉。对于更复杂的情况,它会给出一个保留哪些删除哪些的解决方案。
参考:https://raphaelhertzog.com/2011/02/07/debian-cleanup-tip-2-get-rid-of-obsolete-packages/
理rc包
有些包卸载不彻底,也会导致各种问题。
debian系的底层包管理程序dpkg可以对于帮助我们找到这些包。
使用dpkg --list
可以查看所有包的状态,其中前两位表示状态,第一位为期望的状态,第二位为实际的状态。可以大致理解为:当我们输入安装命令时,第一位置为i(表示install),当命令完成时,第二位置为i。
更细节的表示可以参考文档,或者查看:https://linuxprograms.wordpress.com/2010/05/11/status-dpkg-list/
一个常见的非理想状态是:第一位为r(removed),第二位为c(Cfg-file存在)。
# 查看rc状态的包 dpkg --list |grep "^rc" # 清除 dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge # 或者使用aptitude sudo aptitude purge "~c"
参考:https://blog.csdn.net/yanxiangtianji/article/details/88075587?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param