将 AWS EC2 升级到 14.04 后,dpkg 无法正常运行

将 AWS EC2 升级到 14.04 后,dpkg 无法正常运行

在我们的暂存 EC2 实例上运行后do-release-upgrade -d,我遇到了 dpkg 的问题。

我最初的问题是 mkvirtualenv 命令失败并出现以下错误:

Unknown distribution virtual 1.7.11

有些细节我无法恢复,因为我已经删除了 python :(

但是,一旦我手动删除了 python,并尝试重新安装它,我在 apt-get 安装过程的 rnd 开始收到以下错误:

Setting up python-twisted-names (11.1.0-1) ...
/var/lib/dpkg/info/python-twisted-names.postinst: 8: /var/lib/dpkg/info/python-twisted-names.postinst: pycompile: not found
dpkg: error processing package python-twisted-names (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up python-twisted-web (11.1.0-1) ...
/var/lib/dpkg/info/python-twisted-web.postinst: 8: /var/lib/dpkg/info/python-twisted-web.postinst: pycompile: not found
dpkg: error processing package python-twisted-web (--configure):
 subprocess installed post-installation script returned error exit status 127
Errors were encountered while processing:
 python-twisted-names
 python-twisted-web
E: Sub-process /usr/bin/dpkg returned an error code (1)

任何帮助深表感谢。

答案1

您是否尝试过重新安装 dpkg? sudo apt-get install --reinstall dpkg

如果这不起作用,这可能是 pythons 包特有的。尝试修改 postinst 文件:gksu gedit /var/lib/dpkg/info/python-twisted-names.postinst或者如果您愿意,可以使用其他文本编辑器。

删除所有内容并替换为

#!/bin/sh
set -e
exit 0

如果这仍然不起作用,您可以尝试删除状态文件rm /var/lib/dpkg/status并保留原样,以便构建新文件,或将其替换为旧文件cp /var/lib/dpkg/status-old /var/lib/dpkg/status

我也知道这些命令dpkg --configure -adpkg-reconfigure -phigh -a,它们应该有用,但我不知道什么时候。在不同的时间点尝试它们。不要忘记sudo apt-get update在配置之前至少尝试一次。

相关内容