如何让dpkg再次工作?

我试着通过输入以下命令在ubuntu 10.04上安装sqlite3:

sudo apt-get install sqlite3 

这给了我这个消息

 E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem. 

所以我尝试了“sudo dpkg –configure -a”,没有错误。 我试着再次安装sqlite3。 这次它显示了将要进行的更新。 所以我继续并收到此错误消息(部分翻译为greman):

 Unpacking substitution for ubuntu-docs ... dpkg: ../../src/archives.c:763: tarobject: Assertion »r == stab.st_size« not fullfilled E: Sub-process /usr/bin/dpkg exited unexpectedly 

我希望这里的一些专家可以帮助我:)

我会通过检查你的dpkg的完整性来开始故障排除。

以下是Ubuntu 11.04的所有dpkg文件,其中过滤了文档和目录:

http://biocluster.ucr.edu/~alevchuk/dpkg-1.16.0~ubuntu7-file-list

你发布了你的文件的校验和。 要获得这些运行:

 wget http://biocluster.ucr.edu/~alevchuk/dpkg-1.16.0~ubuntu7-file-list cat dpkg-1.16.0~ubuntu7-file-list | xargs md5sum > my-dpkg-checksums 

然后请发布my-dpkg-checksums文件,以便我们比较校验和。

还请发布你的Ubuntu是32位还是64位(例如只发布uname -r的输出)

原来一个包(ubuntu-docs)处于不一致状态,导致上面显示的错误消息。

我在UbuntuFormus上发现了这篇post并使用过

sudo dpkg --force-all -r ubuntu-docs

强制删除所有与ubuntu-docs相关的包信息。 由于状态不一致,apt-get / aptitude purge / remove(即使用force)也不起作用。

使用此命令时要小心,因为它可能会破坏您的系统

首先。 不要删除dpkg二进制文件并尝试使用wget下载它,这是一个可怕的想法。

第二关。 您使用的是NTFS还是EncryptFs卷? 这听起来很像:

https://bugs.launchpad.net/ubuntu/+source/dpkg/+bug/573696和/或https://bugs.launchpad.net/ubuntu/+source/linux/+bug/524919

建议是回到ext3文件系统。 有关您所使用的系统的更多信息(包括Ubuntu版本以及访问这些文件的文件系统)将会很有帮助。