有时在Linux下卸载某些包时,会出现类似如下错误:
dpkg: error processing glx-diversions (--remove):
subprocess installed post-removal script returned error exit status 2
configured to not write apport reports
Errors were encountered while processing:
glx-diversions
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install. Trying to recover:这说明对应的包在dpkg info 中已经出现了错误,此时有两种解决方法:
1:彻底删除更新dpkg info
mv /var/lib/dpkg/info /var/lib/dpkg/info.bak && mkdir /var/lib/dpkg/info && apt install -f之后,异常就会消失。
不过这种方法有缺陷。原理是相当于直接把出错的dpkg info连同正确的一并移除了,这样的后果是以后安装什么软件都会报一大堆如下的警告:
dpkg: warning: files list file for package `*****' missing, assuming package has no files currently所以这种方法不推荐。如果已经出现了这些警告,解决方法是直接用 apt install --reinstall 命令重新安装警告的包即可。
2:只移除出错信息
正确的做法是如果 apt-get 出现类似如下错误
“subprocess installed post-installation script returned error exit status 1″
dpkg: error processing util-linux (–configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
util-linux
E: Sub-process /usr/bin/dpkg returned an error code (1)进入 /var/lib/dpkg/info 目录,将出错的包档案删除即可。
比如出错的包名是xxx 直接进入这个目录rm xxx* 即可
最后
apt-get autoclean
apt-get update
apt-get upgrade即可回复正常。