i386 版本

i386 版本

我在 VPS 实例上运行 Debian,该实例用于一个小型网站/项目,由少数用户不定期使用。服务器大部分时间处于闲置状态,但我偶尔会尝试登录以保持软件包最新。今天我意识到我已经很长时间没有登录服务器了,于是登录运行apt-get update && apt-get upgrade

除了有大量可用更新软件包之外,一切似乎都很顺利,直到升级过程突然停止并出现以下消息:

Processing triggers for man-db ...
Errors were encountered while processing:
 /var/cache/apt/archives/mime-support_3.58_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

第二次运行apt-get upgrade显示,大部分需要更新的软件包被“mime-support”阻止了。

Preparing to replace mime-support 3.48-1 (using .../mime-support_3.58_all.deb) ...
dpkg: error processing /var/cache/apt/archives/mime-support_3.58_all.deb (--unpack):
 triggers ci file contains unknown directive `interest-noawait'
configured to not write apport reports
                                  Errors were encountered while processing:
 /var/cache/apt/archives/mime-support_3.58_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

稍微谷歌一下就会发现,mime-support 更新依赖于 dpkg 功能“interest-noawait”,而事实上,该功能包含在被 mime-support 阻止的 dpkg 更新中……

在我看来,我无法将 dpkg 升级到最新版本,因为它依赖于 mime-support,而 mime-support 又由于依赖于较新版本的 dpkg 而无法升级?

是否可以手动安装最新版本的 dpkg 来解决此错误?我尝试删除 mime-support,但由于存在许多其他依赖项,因此无法完成。

答案1

我也遇到过类似的问题。我发现别处解决方案是将旧的 dpkg 可执行文件替换为新版本。对我来说,这个方法有效。

首先您需要下载当前版本的 dpkg:

i386 版本

获得https://launchpad.net/ubuntu/+archive/primary/+files/dpkg_1.18.4ubuntu1.1_i386.deb

或者

amd64 版本

获得https://launchpad.net/ubuntu/+archive/primary/+files/dpkg_1.18.4ubuntu1.1_amd64.deb

之后,提取新的 dpkg 二进制文件并将其放置在旧二进制文件的位置:

ar x dpkg_1.18.4ubuntu1.1_amd64.deb tar -xfvz data.tar.gz
sudo cp ./usr/bin/dpkg /usr/bin/
sudo apt-get update
sudo apt-get install --reinstall dpkg

这招很管用。

相关内容