自从尝试升级到 16.04 xenial 以来,我得到了
$ apt
apt: relocation error: /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0:
symbol _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_,
version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference
当只是跑步时apt
。不用说,这使得做任何事情都变得困难。
有什么提示吗?
答案1
我遇到了同样的问题,这是由 Ubuntu 工具链的 PPA 问题引起的。我的电脑因此无法启动。根据 @w00kie 对他的回答的评论,我(从 tty 终端)下载了链接中libstdc++6
的debian 软件包Xenial
https://packages.ubuntu.com/xenial/libstdc++6并使用 安装dpkg -i
。计算机现在运行正常。
脚步
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
# I also found this helpful
sudo apt-get -f install
答案2
罪魁祸首是Ubuntu 工具链上传的 PPA(受限), 具体来说
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
处理这个问题有两种可能性:
您已经
ppa-purge
安装。然后sudo ppa-purge ppa:ubuntu-toolchain-r/test
修复了问题。
通过下载覆盖 libstc++Xenial 的 libstdc++6并通过 安装
dpkg -i
。
答案3
由于这个错误,我的电脑无法正常启动。Apt-get 无法工作,Gnome 也无法工作。这是从 14.04 升级到 16.04 后立即发生的。我在 tty 中输入以下命令解决了这个问题
sudo apt-add-repository --remove ppa:ubuntu-toolchain-r/test
此时apt-get
又开始工作了,并且我能够从那里解决所有问题:
sudo apt-get clean
sudo apt-get update
sudo apt-get install -f
sudo dpkg -a --configure
sudo apt-get dist-upgrade
我还必须卸载 Virtualbox(在更新命令之后)并稍后重新安装它,但我认为这无关紧要。
答案4
按照dpkg -i
接受的答案中的方法,我的 14.04->16.04 升级需要的不是一个包,而是两个包:
gcc-5-base_5.4.0-6ubuntu1~16.04.4_i386.deb
libstdc++6_5.4.0-6ubuntu1~16.04.4_i386.deb
此后,apt upgrade
能够下载剩余的软件包并完成安装。