apt-get purge --autoremove卸载后残留文件无法删除的问题咨询
apt-get purge --autoremove卸载后残留文件无法删除的问题咨询
嘿,我来帮你捋捋这个问题~
首先你别担心,不是你用错了命令,这其实是dpkg和apt的设计逻辑导致的正常现象,我给你拆解下原因和解决办法:
为什么会出现“目录非空无法删除”的警告?
dpkg在卸载软件包时,只会删除这个包自己创建的空目录。如果目录里还有其他文件——可能是其他软件包安装的,或者你手动添加的内容——它就会保留这个目录,避免误删其他软件依赖的关键文件。比如你看到的字体相关目录,大概率是还有其他依赖这些字体包的软件没卸载,或者目录里混入了其他包的文件。
怎么处理这些残留目录和未被移除的包?
给你几个实用步骤:
先搞清楚残留文件属于哪个包
针对那些非空目录,先查询里面的文件归属,比如查/usr/share/fonts/type1/urw-base35里的文件:dpkg -S /usr/share/fonts/type1/urw-base35/*这样就能知道这些文件是不是被其他软件包安装的,如果是,你得先确认那些包是不是还需要保留。
确认依赖关系后再处理未移除的包
对于autoremove没删掉的包,先查看它们的依赖情况,比如以fonts-urw-base35为例:apt-cache rdepends fonts-urw-base35如果输出里没有你还在使用的软件,那你可以手动再次尝试卸载:
sudo apt purge --autoremove fonts-urw-base35要是还是删不掉目录,确认完全没用的话,可以手动删除(谨慎操作):
sudo rm -rf /usr/share/fonts/type1/urw-base35 /usr/share/fonts/opentype/urw-base35清理dpkg残留配置(慎用)
如果还有顽固的残留配置,可以试试这个命令,但--force-all可能会引发依赖问题,只在你确认这个包完全没用的时候用:sudo dpkg --purge --force-all <package-name>
你遇到的具体错误信息参考:
dpkg: warning: while removing fonts-urw-base35, directory '/usr/share/fonts/type1/urw-base35' not empty so not remove dpkg: warning: while removing fonts-urw-base35, directory '/usr/share/fonts/opentype/urw-base35' not empty so not rem Purging configuration files for poppler-data (0.4.11-1) ... dpkg: warning: while removing poppler-data, directory '/usr/share/poppler/cMap/Adobe-Korea1' not empty so not removed dpkg: warning: while removing poppler-data, directory '/usr/share/poppler/cMap/Adobe-Japan2' not empty so not removed dpkg: warning: while removing poppler-data, directory '/usr/share/poppler/cMap/Adobe-Japan1' not empty so not removed dpkg: warning: while removing poppler-data, directory '/usr/share/poppler/cMap/Adobe-GB1' not empty so not removed dpkg: warning: while removing poppler-data, directory '/usr/share/poppler/cMap/Adobe-CNS1' not empty so not removed dpkg: warning: while removing poppler-data, directory '/usr/share/fonts/cmap' not empty so not removed dpkg: warning: while removing poppler-data, directory '/usr/share/fonts/cMap' not empty so not removed Purging configuration files for gsfonts (1:8.11+urwcyr1.0.7~pre44-4.5) ... dpkg: warning: while removing gsfonts, directory '/usr/share/fonts/type1/gsfonts' not empty so not removed dpkg: warning: while removing fonts-noto-mono, directory '/usr/share/fonts/truetype/noto' not empty so not removed Purging configuration files for fonts-droid-fallback (1:6.0.1r16-1.1build1) ... dpkg: warning: while removing fonts-droid-fallback, directory '/usr/share/fonts/truetype/droid' not empty so not removed
备注:内容来源于stack exchange,提问作者ubudoge




