如何让 dpkg 再次工作?

如何让 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。这次它显示了将进行哪些更新。所以我继续并收到此错误消息(部分从德语翻译而来):

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

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

答案1

事实证明,一个包(ubuntu-docs)处于不一致的状态,导致了上面显示的错误消息。

我发现这个帖子UbuntuFormus并使用

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

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

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

答案2

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

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

http://biocluster.ucr.edu/~alevchuk/dpkg-1.16.0~ubuntu7-文件列表

您可以发布文件的校验和。要运行这些校验和,请执行以下操作:

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

然后请发布我的 dpkg 校验和文件,以便我们可以比较校验和。

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

答案3

首先。不要删除 dpkg 二进制文件并尝试使用 wget 下载它,这是一个糟糕的主意。

其次。您使用的是 NTFS 还是 EncryptFs 卷?这听起来很像:

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

建议重新使用 ext3 文件系统。有关您所使用的系统的更多信息(包括 Ubuntu 版本和访问这些文件的文件系统)会很有帮助。

相关内容