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)
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 版本。它抱怨它需要libcwidget3v5和libsigc++-2.0-0v5。但它无法安装这些,因为如果它尝试会破坏依赖关系。
当我之前遇到过像这样的一堆依赖项时,结果发现我在顶层有一些错误的东西。
有什么解决办法?我想如果我能开始apt工作,我可以修理其他东西。我愿意再次运行升级过程,但do-release-upgrade失败了,因为它不能使用apt.
一些进一步要求的细节。
的输出dpkg --print-architecture:i386
输出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。