使用apt-get出现问题,错误信息大概如下
The package <package-name> needs to be reinstalled, but I can't find an archive for it.
用 apt-get install -f 无法修复.
考虑一下报错信息,应该是apt对之前失败的某次安装A念念不忘,并且在安装其他东西之前会重新安装这个程序A.(这个和正常的失败是不一样的)
apt-get本质上是包装了dpkg,可以想到在某个地方一定记录了apt-get的历史安装信息
于是找到了文件/var/lib/dpkg/status,vim查看一下,每条信息的格式大概如下:
Package: 程序(包)名称
Status: 状态(正常为install ok installed)
Priority: optional
...
//不仔细写了,大概包括依赖包,版本,架构,配置文件等信息
于是直接搜索到了之前报错的包名称,发现状态是 install ok half-configured 果然和我想的一样,和一般的失败不同.把文件做了个备份,直接删掉了整条信息.
再次安装文件,发现ok
如果还是提示错误,apt-get install -f,之后可以正常安装,不过安装成功以后会弹出以前失败的内容,可以通过清空/var/lib/dpkg/info 来清除以前的错误.
The package <package-name> needs to be reinstalled, but I can't find an archive for it.
用 apt-get install -f 无法修复.
考虑一下报错信息,应该是apt对之前失败的某次安装A念念不忘,并且在安装其他东西之前会重新安装这个程序A.(这个和正常的失败是不一样的)
apt-get本质上是包装了dpkg,可以想到在某个地方一定记录了apt-get的历史安装信息
于是找到了文件/var/lib/dpkg/status,vim查看一下,每条信息的格式大概如下:
Package: 程序(包)名称
Status: 状态(正常为install ok installed)
Priority: optional
...
//不仔细写了,大概包括依赖包,版本,架构,配置文件等信息
于是直接搜索到了之前报错的包名称,发现状态是 install ok half-configured 果然和我想的一样,和一般的失败不同.把文件做了个备份,直接删掉了整条信息.
再次安装文件,发现ok
如果还是提示错误,apt-get install -f,之后可以正常安装,不过安装成功以后会弹出以前失败的内容,可以通过清空/var/lib/dpkg/info 来清除以前的错误.