Vraag apt: relocation error: version GLIBCXX_3.4.21 niet gedefinieerd in bestand libstdc ++. so.6 met verwijzing naar linktijd


Sinds ik probeerde te upgraden naar 16.04 xenial, krijg ik

$ 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

wanneer je gewoon loopt apt. Onnodig te zeggen dat dit het moeilijk maakt om iets te doen.

Enige hints?


51
2018-05-26 14:11


oorsprong


wauw ... dit maakt me echt wantrouwig bij het upgradeproces van Ubuntu / Canonical. Elke keer als ik een werkend maar oude versie, iemand op een helpforum vertelt me ​​dat upgrades al mijn problemen zullen oplossen ... Ik weet niet wat een "scratch-schijf" is, en wil zeker niet het werk onderbreken met GRUB debugging ... - isomorphismes


antwoorden:


Ik had hetzelfde probleem veroorzaakt door problemen met PPA voor Ubuntu-toolchain. Mijn computer zou daardoor niet opstarten. Naar aanleiding van @ w00kie's commentaar op zijn antwoord, downloadde ik (vanaf tty terminal) de debian van het pakket libstdc++6 voor Xenial op link http://packages.ubuntu.com/xenial/libstdc++6 en geïnstalleerd met dpkg -i. De computer werkt nu prima.


42
2018-06-28 20:47



Kun je de opdrachten alsjeblieft stap voor stap in je antwoord plaatsen? Ik ben hier helemaal niet bekend mee en mijn linux-machine is aan het werk ... - Zachary Fields
@Zachary Wat is het exacte probleem waarmee u wordt geconfronteerd? Kun je opstarten? - Sagar Jha
Niet echt. Als ik het laat gaan, flikkert het scherm ongeveer 15 minuten, dan krijg ik een prompt van een tty2-terminal in een erg lichtgrijze kleur. Ik kan het niet gebruiken apt (of een tool echt). Ik heb zelfs geprobeerd om te downloaden libstdc++6...deb vanaf een opstartbare USB-drive plaats je het pakket handmatig, start je het opnieuw op in het kapotte systeem en installeer je het .deb gebruik makend van sudo dpkg -i libstdc++6...deb, maar het weet niet eens wat dpkg is. - Zachary Fields
Om het .deb-bestand te downloaden / installeren, kunt u het volgende doen: wget http://security.ubuntu.com/ubuntu/pool/main/g/gcc-5/libstdc++6_5.4.0-6ubuntu1~16.04.2_amd64.deb en dan eenmaal dat downloads, dpkg -i libstdc++6_5.4.0-6ubuntu1~16.04.2_amd64.deb (gaat uit van een 64-bits systeem). Voor mij werkte mijn internetverbinding niet, dus downloadde ik deze van een andere computer naar een USB-station en moest ik vervolgens de USB-drive op mijn problematische computer monteren (sudo mount /dev/sdc1 /media/usb waar sdc1 werd gevonden door terminaluitgang te bekijken direct na het aansluiten van USB) en voer dan het bovenstaande uit dpkg opdracht. - Garrett
Ik moest gebruiken dpkg --force-all -i libstdc+‌​+6_5.4.0-6ubuntu1~16‌​.04.2_amd64.deb om het te laten installeren - virtualxtc


De schuldige zijn overblijfselen van de PPA voor Ubuntu Toolchain-uploads (beperkt), specifiek

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

Er zijn twee mogelijkheden om hiermee om te gaan:

  • Je hebt al ppa-purge geïnstalleerd. Dan

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

    lost de problemen op.

  • Overschrijf de libstc ++ door te downloaden libstdc ++ 6 voor Xenial en het installeren via dpkg -i.


22
2018-05-26 14:58



In ieder geval voor mij mislukt dit met een bericht dat identiek is aan dat in de vraag ... - mbdevpl
Moet waarschijnlijk worden uitgebreid met antwoorden van onderaf, want uiteraard ppa-purge zal niet werken (dezelfde python) - user64204
Ik krijg: sudo: ppa-purge: command not found - Garrett
@Garrett sudo apt install ppa-purge - Nico Schlömer
@ NicoSchlömer, bedankt, maar eigenlijk geloof ik mijn apt werkte ook niet (volgens de originele post). - Garrett


Mijn comp kan niet correct opstarten vanwege deze fout. Apt-get werkte niet en Gnome ook niet. Dit was meteen na een upgrade van 14.04 naar 16.04. Ik loste het in tty op door binnen te gaan

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

Op dit punt apt-get begon weer te werken en ik kon alle gebieden daar herstellen:

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

Ik moest ook Virtualbox verwijderen (na de update-opdracht) en het later opnieuw installeren, maar ik denk dat dit geen verband hield.


8
2017-08-17 15:48



ik probeerde dit maar kreeg een importfout op pakket apt_pkg - Mixone
Mixone, wat was de exacte fout en op welk commando precies? - Matjaz
sudo apt-get update de fout kwam van de python-backend, ik vermoed dat de stacktrace python was en in principe zei dat het de module apt_pkg niet kon vinden - Mixone
Hetzelfde probleem voor mij ook, in een poging om de apt-add-repository opdracht in uw antwoord geeft: ImportError: /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0: symbol _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_, version GLIBCXX_3.4.21 not defined in the file libstdc++.so.6 with link time reference - Garrett
Voor idioten zoals ik die 2 jaar na de release proberen te upgraden en denken dat alle bugs opgelost zijn. Link in de bovenstaande opmerking is verbroken. Hier is de nieuwe. http://security.ubuntu.com/ubuntu/pool/main/g/gcc-5/libstdc++6_5.4.0-6ubuntu1~16.04.10_amd64.deb (of i386 of beide) En vind het niet erg dat dpkg je vervloekt. Do --auto--deconfigure en jouw apt-get zal na foutmeldingen weer op het goede spoor komen. En je zult in staat zijn om af te ronden met de juiste -f --install + --upgrade en start opnieuw op in een nieuw systeem. - Ufos


Ik had gedacht dat het probleem iets unieks voor me was en werd veroorzaakt door een downloadfout.

Deze discussie gaf me de aanwijzing die ik nodig had. In feite was alles wat nodig was om libstdc ++. So.6.0.22 te vervangen door libstdc ++. So.6.0.21 in / usr / lib / x86_64-linux-gnu van het falende systeem. (Het lijkt erop dat er een fout is in de nieuwere versie.)

Dit kan gedaan worden met een thumb-drive of, zoals in mijn geval, vanaf een scratch-disk.

Volledige details op: https://answers.launchpad.net/ubuntu/+question/395832

Bedankt aan alle ...


4
2017-09-15 19:12



Ik heb deze truc gebruikt, maar deed een dubbele boot op wat vrije ruimte. Ik kon de originele verdeling gemakkelijk opzetten. Het was vrij eenvoudig. - Andrew
Geweldig - deze 3 commando's werkten voor me: cd / usr / lib / x86_64-linux-gnu / >>> sudo rm libstdc ++. So.6 >>> sudo ln -s libstdc ++. So.6.0.21 libstdc ++. So.6 - osman


Volgens de dpkg -i aanpak in het geaccepteerde antwoord, mijn 14.04-> 16.04 upgrade vereiste niet één maar twee pakketten:

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

Na dit, apt upgrade kon de resterende pakketten downloaden en de installatie voltooien.


3
2018-05-04 03:51





Als u de nieuwste versie van de 'toverkracht-up'-snap hebt geïnstalleerd met Snappy op Yakkety, zal uw apt worden verbroken met een zeer vergelijkbare foutmelding:

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

vanwege deze bug:

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

Op dit moment is de enige tijdelijke oplossing die ik ken de verwijderde tovermoment (of mogelijk 'snap het terug' naar een vorige versie als je er eerder een had geïnstalleerd).


1
2018-03-30 12:57





U zou het moeten kunnen oplossen door het volgende te typen:

sudo apt-get -f install

zonder een pakket op te geven. Het zou het werk moeten doen.


0
2017-09-26 11:32





Er kan een soortgelijk probleem zijn met i386-systemen.

Om het probleem op te lossen, moest ik gcc-5-base downgraden van versie 5.4.1-2ubuntu1~12.04 naar 5.4.0-6ubuntu1~16.04.4.

Om de upgrade naar een redelijk ogenschijnlijk systeem te voltooien, moest ik ook gebruiken dpkg --purge on vituoso_nepomuken virtualbox om zich te ontdoen van hun configuratiebestanden, die problemen veroorzaakten (VirtualBox wordt voor mij geleverd door pakket virtualbox-5.1, dat ongeschonden lijkt door de upgrade.)

De sleutel was om te krijgen dpkg --configure dbus werken.

Om wget in een tty-type scherm in te schakelen, moeten gebruikers mogelijk ook uitvoeren sudo dhclient eth0 om een ​​bekabelde Ethernet-verbinding in te schakelen.


0
2017-11-20 00:11





De oplossing die voor mij werkte was om de Ubuntu toolchain ppa terug toe te voegen:

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

0
2018-02-21 21:31





Ik heb net dit probleem gehad bij het upgraden van ubuntu-distributie op Linux Ik zag dat:

# ls /usr/lib/x86_64-linux-gnu/libstdc++.so.6*
libstdc++.so.6 -> libstdc++.so.6cd*
libstdc++.so.6.0.20*
libstdc++.so.6.0.21
libstdc++.so.6cd -> libstdc++.so.6.0.20*

libstdc ++. so.6 -> libstdc ++. so.6cd -> libstdc ++. so.6.0.20

Maar er waren twee bestanden: libstdc ++. So.6.0.21 en libstdc ++. So.6.0.20

Ik heb de symbolische koppeling zodanig gewijzigd dat deze verwijst naar de nieuwste versie libstdc ++. So.6.0.21

cd /usr/lib/x86_64-linux-gnu
rm libstdc++.so.6cd
chmod +x libstdc++.so.6.0.21
ln -s  libstdc++.so.6.0.21 libstdc++.so.6cd

resulterend:

libstdc++.so.6 -> libstdc++.so.6cd*
libstdc++.so.6.0.20*
libstdc++.so.6.0.21*
libstdc++.so.6cd -> libstdc++.so.6.0.21*

en alles werd weer normaal


0
2018-04-09 12:26





  1. Download libstdc ++ 6 voor uw ubuntu via de Ubuntu-pakketmanagerwebsite. ( gebruik uname -a om de h / w en s / w architectuur te vinden).

  2. Rennen

    sudo dpkg --install --auto-deconfigure libstdc++6...deb
    
  3. Reboot. Ubuntu zou moeten opstarten, maar apt zou geen nieuwe pakketten installeren.

  4. Om de afhankelijkheden te repareren en het systeem up-to-date te houden, voert u deze opdrachten uit

    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  
    

0
2017-07-26 09:07