我第一次注意到这个问题是当我的更新管理器不断无法安装更新 sudo apt-get update 运行时没有返回任何错误时,当我运行:
sudo apt-get install upgrade
我收到以下错误:
dpkg: malloc.c:2372: sysmalloc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 *(sizeof(size_t))) - 1)) & ~((2 *(sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long) old_end & pagemask) == 0)' failed.
E: Sub-process /usr/bin/dpkg exited unexpectedly
可能与这个问题无关,当我第一次启动我的电脑时(与上述错误相同的笔记本电脑)“T”和“Y”键以及其他几个键不起作用,最初以为是键盘本身的问题,但几分钟后所有键都开始正常工作,我猜是软件问题?
我尝试搜索,但找不到任何解决方案,希望有人能帮忙
答案1
尝试将机器置于恢复模式(基本上是两次断电),然后选择高级选项、恢复模式,并尝试 dpkg 选项。值得一试。
答案2
正确的命令是
sudo apt-get upgrade
您应该删除安装然后它就会起作用。
答案3
我遇到了同样的错误并设法找到了解决方案。
您可能从错误消息中推断出,这是 dpkg 的问题。事实证明,就我而言,有一个损坏的文件导致/var/lib/dpkg/info
dpkg 以如此戏剧性的方式结束。最简单、最不危险的解决方案是重新安装系统,但如果这太麻烦,您可以尝试通过重建信息来删除损坏的文件。
首先创建一个备份。
cd /var/lib/dpkg
mv info info.bak
现在,您可以通过重新安装系统中的每个包来重新生成信息。(警告:这将需要一段时间!)
for i in $(dpkg -l|awk '/^ii/ {print $2}')
do
apt-get --reinstall -y install $i
done
希望您已经一切就绪!