67 votes

apt : erreur de relocalisation : la version GLIBCXX_3.4.21 n'est pas définie dans le fichier libstdc++.so.6 avec une référence de temps de liaison

Depuis que j'ai essayé de mettre à jour vers 16.04 xenial, j'obtiens

$ 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

lorsqu'il s'agit simplement d'exécuter apt . Inutile de dire qu'il est alors difficile de faire quoi que ce soit.

Des conseils ?

58voto

Sagar Jha Points 1043

J'ai eu le même problème causé par des problèmes de PPA pour Ubuntu toolchain. Mon ordinateur ne voulait pas démarrer à cause de cela. En suivant le commentaire de @w00kie sur sa réponse, j'ai téléchargé (depuis le terminal tty) le paquet debian of libstdc++6 pour Xenial au lien https://packages.ubuntu.com/xenial/libstdc++6 et installé en utilisant dpkg -i . L'ordinateur fonctionne très bien maintenant.

Étapes

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

26voto

Nico Schlömer Points 1770

Les coupables sont les restes de la PPA pour les téléchargements de chaînes d'outils Ubuntu (restreint) et plus particulièrement

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

Il y a deux possibilités de traiter ce problème :

  • Vous avez déjà ppa-purge installé. Puis

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

    corrige les problèmes.

  • Remplacer la libstc++ en téléchargeant libstdc++6 pour Xenial et l'installer via dpkg -i .

8voto

Matjaz Points 91

Mon ordinateur n'a pas réussi à démarrer correctement à cause de cette erreur. Apt-get ne fonctionnait pas, ni Gnome. Cela s'est produit immédiatement après une mise à niveau de 14.04 à 16.04. Je l'ai résolu dans le tty en entrant

sudo apt-add-repository --remove ppa:ubuntu-toolchain-r/test

A ce stade apt-get a recommencé à fonctionner et j'ai pu résoudre tous les problèmes à partir de là :

sudo apt-get clean
sudo apt-get update
sudo apt-get install -f
sudo dpkg -a --configure
sudo apt-get dist-upgrade

J'ai également dû désinstaller Virtualbox (après la commande de mise à jour) et le réinstaller plus tard, mais je pense que ce n'est pas lié.

4voto

SteelTrap Points 41

J'avais pensé que le problème était quelque chose d'unique à moi, et qu'il était causé par une erreur de téléchargement.

Cette discussion m'a donné l'indice dont j'avais besoin. En fait, il suffisait de remplacer libstdc++.so.6.0.22 par libstdc++.so.6.0.21 dans /usr/lib/x86_64-linux-gnu du système défaillant. (Il semble qu'il y ait une erreur dans la version la plus récente).

Cela peut être fait à partir d'une clé USB ou, comme dans mon cas, à partir d'un disque scratch.

Tous les détails à : https://answers.launchpad.net/ubuntu/+question/395832

Merci à tous...

4voto

user1905416 Points 41

Suite à la dpkg -i approche dans la réponse acceptée, ma mise à niveau 14.04->16.04 a nécessité non pas un mais deux paquets :

gcc-5-base_5.4.0-6ubuntu1~16.04.4_i386.deb
libstdc++6_5.4.0-6ubuntu1~16.04.4_i386.deb

Après ça, apt upgrade a pu télécharger les paquets restants et terminer l'installation.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X