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 ?

2voto

Ivy Points 21

Si vous avez la dernière version du snap 'conjure-up' installé avec Snappy sur Yakkety, votre apt sera cassé avec une erreur très similaire :

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

en raison de ce bogue :

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

Actuellement, la seule solution de contournement que je connaisse est de supprimer le snap conjure-up (ou éventuellement de le "réinitialiser" à une version antérieure si vous en aviez installé un auparavant).

1voto

La solution qui a fonctionné pour moi a été de rajouter le ppa de la chaîne d'outils Ubuntu :

sudo apt-add-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install -f
sudo apt-get upgrade

1voto

Vormos Zuke Points 11
  1. Téléchargez libstdc++6 pour votre ubuntu depuis le site du gestionnaire de paquets Ubuntu. ( utilisation uname -a pour trouver l'architecture h/w et s/w).

  2. Exécuter

    sudo dpkg --install --auto-deconfigure libstdc++6...deb
  3. Reboot. Ubuntu devrait démarrer mais apt n'installe pas les nouveaux paquets.

  4. Pour corriger les dépendances et mettre le système à jour, exécutez ces commandes

    sudo apt-add-repository ppa:ubuntu-toolchain-r/test
    sudo apt-get update
    sudo apt-get install -f
    sudo apt-get upgrade
    sudo apt-get dist-upgrade
    sudo apt-get autoclean && sudo apt-get autoremove

0voto

biljkus Points 27

Vous devriez être capable de le réparer en le tapant :

sudo apt-get -f install

sans spécifier de paquet. Il devrait faire le travail.

0voto

Il peut y avoir un problème très similaire avec les systèmes i386.

Pour résoudre le problème, j'ai également dû rétrograder gcc-5-base de la version 5.4.1-2ubuntu1~12.04 a 5.4.0-6ubuntu1~16.04.4 .

Pour terminer la mise à niveau vers un système qui semble raisonnable, j'ai également dû utiliser dpkg --purge on vituoso_nepomuk et virtualbox pour se débarrasser de leurs fichiers de configuration, qui causaient des problèmes (pour moi, VirtualBox est fourni par le paquet virtualbox-5.1, qui semble indemne de la mise à jour).

La clé était d'obtenir dpkg --configure dbus pour travailler.

Pour activer wget dans un écran de type tty, les utilisateurs peuvent également avoir besoin d'exécuter sudo dhclient eth0 pour activer une connexion Ethernet filaire.

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