运行简单升级后,每次尝试使用时都会崩溃apt-get
。任何命令都会崩溃并显示相同的错误消息:
legaliz_me:~$ sudo apt-get
apt-get: relocation error: /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12: symbol DDDDDDDDDDDDDDDDDDDDDDDDDDDDDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_ZNSt6vectorIN3APT13Configuration10CompressorESaIS2_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS2_S4_EERKS2_, version GLIBCXX_3.4 not defined in file libstdc++.so.6 with link time reference
完整日志:http://pastebin.com/BmTE5erZ
我不记得在我的系统中添加过任何疯狂的 edger ppa 或任何特殊的东西。我运行的是 14.04 64 位。apt 对其他人来说是否坏了?
答案1
我有一些损坏的依赖项,可能阻止了 libc6 更新。我使用以下命令检查了软件包版本:
$ dpkg -l apt libc6 libapt-pkg4.12:amd64
libapt-pkg4.12:amd64 1.0.1ubuntu2
libc6:amd64 2.19-0ubuntu6
libc6:i386 2.19-0ubuntu6
我检查了这些包的 md5,与libapt-pkg4.12:amd64
另一个用户进行比较后发现它已被损坏。
$ md5sum /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12
通过手动安装libc6
和libapt-pkg4.12
从启动板 .deb 包修复了这个问题:libapt-gp4.12 版,libc6
sudo dpkg -i libc6_2.19-0ubuntu6_i386.deb libc6_2.19-0ubuntu6_amd64.deb libapt-pkg4.12_1.0.1ubuntu2_amd64.deb
在我强制更新之后,旧的依赖项得到了更新
sudo apt-get -f upgrade
现在一切都好了。