当前位置: 首页>>技术问答>>正文


apt:重定位错误:版本GLIBCXX_3.4.21未在文件libstdc ++中定义.so.6带有链接时间参考

, , ,

问题描述

自从尝试升级到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时。毋庸置疑,这使得很难做任何事情。

任何提示?

最佳解决办法

我遇到了与PPA for Ubuntu工具链问题相同的问题。我的电脑无法启动。在@ w00kie对他的回答发表评论之后,我从链接https://packages.ubuntu.com/xenial/libstdc++6下载了(从tty终端)用于Xenial的软件包libstdc ++ 6的debian,并使用dpkg -i安装。电脑现在工作得很好。

Steps

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

次佳解决办法

罪魁祸首是来自PPA for Ubuntu Toolchain Uploads (restricted)的left-overs,具体来说,

/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22

处理这个有两种可能性:

  • 您已经安装了ppa-purge。然后

    sudo ppa-purge ppa:ubuntu-toolchain-r/test
    

    修复问题。

  • 通过下载libstdc++6 for Xenial并通过dpkg -i安装来覆盖libstc ++。

第三种解决办法

由于此错误,我的comp无法正确启动。 Apt-get不起作用,Gnome也没有。这是从14.04升级到16.04之后的立即。我通过输入解决了它

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(在更新命令之后)并稍后重新安装,但我认为这是无关的。

第四种办法

我一直认为这个问题对我来说是独一无二的,并且是由下载错误引起的。

这个讨论给了我需要的线索。基本上,所需要的只是用失败系统的/usr /lib /x86_64-linux-gnu中的libstdc ++。so.6.0.21替换libstdc ++。so.6.0.22。 (似乎新版本中存在错误。)

这可以从thumb-drive完成,或者在我的情况下,从暂存盘完成。

详细信息:https://answers.launchpad.net/ubuntu/+question/395832

谢谢大家…

第五种办法

在接受的答案中遵循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能够下载剩余的包并完成安装。

第六种办法

如果您在Yakkety上安装了Snappy的最新版’conjure-up’卡扣,那么您的apt将会出现类似错误:

apt: relocation error: /usr/lib/x86_64-linux-gnu/libapt-private.so.0.0: symbol _ZN13pkgSourceList16AddVolatileFilesER11CommandLinePSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EE, version APTPKG_5.0 not defined in file libapt-pkg.so.5.0 with link time reference

由于这个错误:

https://bugs.launchpad.net/snappy/+bug/1a677417

目前我所知道的唯一解决方法是删除conjure-up快照(如果之前安装了一个,则可能将’snap revert’移至以前的版本)。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2091.html,未经允许,请勿转载。