升级到 16.04 后出现 apt-get 重定位错误

Top*_*ort 7 upgrade package-management apt do-release-upgrade

我刚刚升级到 Ubuntu xenial,16.04。当我尝试执行 apt-get 时,出现错误

apt-get: relocation error: /usr/lib/i386-linux-gnu/libapt-pkg.so.5.0: symbol [long symbol omitted] version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference
Run Code Online (Sandbox Code Playgroud)

我在apt: relocation error: version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference尝试了解决方案:

wget http://security.ubuntu.com/ubuntu/pool/main/g/gcc-5/libstdc++6_5.4.0-6ubuntu1~16.04.10_amd64.deb
sudo dpkg -i libstdc++6_5.4.0-6ubuntu1~16.04.10_amd64.deb
Run Code Online (Sandbox Code Playgroud)

但系统抱怨这是回到旧版本的 libstdc++6:

dkpg: warning: downgrading libstdc++6:i386 from 8.1.0-5ubuntu1!14.04 to 5.4.0-6ubuntu~16.04.10
Run Code Online (Sandbox Code Playgroud)

并拒绝继续,因为libstdc++6:i386 break libkolabxml1

该页面还建议使用ppa-purge(但未安装)和apt-add-repository(但apt不起作用)。

我也试过aptitude自行安装i386 的 xenial 版本。它抱怨它需要libcwidget3v5libsigc++-2.0-0v5。但它无法安装这些,因为如果它尝试会破坏依赖关系。

当我之前遇到过像这样的一堆依赖项时,结果发现我在顶层有一些错误的东西。

有什么解决办法?我想如果我能开始apt工作,我可以修理其他东西。我愿意再次运行升级过程,但do-release-upgrade失败了,因为它不能使用apt.


一些进一步要求的细节。

的输出dpkg --print-architecturei386

输出dpkg --print-foreign-architecture:[无输出]

输出ldd /usr/lib/i386-linux-gnu/libapt-pkg.so.5.0 | grep local:[无输出]

输出ldd /usr/lib/i386-linux-gnu/libstdc++.so.6 | grep local:[无输出]

小智 1

尝试使用以下命令强制安装 libstdc++6:

dpkg -i --force-downgrade --force-depends libstdc++6...
Run Code Online (Sandbox Code Playgroud)

如果它们不起作用,您也可以尝试--force-all