Так как пытаюсь обновить до 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
. Излишне говорить, что это затрудняет что-либо делать.
Есть намеки?
GRUB
отладкой. …Ответы:
У меня была такая же проблема, вызванная проблемами из PPA для Ubuntu toolchain. Мой компьютер не загружается из-за этого. После комментария @ w00kie к его ответу я скачал (с терминала tty) пакет debian для пакета
libstdc++6
поXenial
ссылке https://packages.ubuntu.com/xenial/libstdc++6 и установил с помощьюdpkg -i
. Теперь компьютер работает нормально.меры
источник
apt
(или любой инструмент на самом деле). Я даже пытался загрузитьlibstdc++6...deb
с загрузочного USB-накопителя, вручную поместить пакет, перезагрузиться в сломанную систему и установить.deb
использованиеsudo dpkg -i libstdc++6...deb
, но он даже не знает, что этоdpkg
такое.wget http://security.ubuntu.com/ubuntu/pool/main/g/gcc-5/libstdc++6_5.4.0-6ubuntu1~16.04.2_amd64.deb
и затем, когда это произойдет,dpkg -i libstdc++6_5.4.0-6ubuntu1~16.04.2_amd64.deb
(предполагается, что 64-битная система). Для меня подключение к Интернету не работало, поэтому я загрузил его на USB-накопитель с другого компьютера, а затем вручную подключил USB-накопитель на моем проблемном компьютере (sudo mount /dev/sdc1 /media/usb
где этоsdc1
было обнаружено путем просмотра вывода терминала сразу после подключения USB). и затем выполните приведенную вышеdpkg
команду.dpkg --force-all -i libstdc++6_5.4.0-6ubuntu1~16.04.2_amd64.deb
чтобы установить этоВиновником являются остатки от PPA для загрузок Ubuntu Toolchain (ограничено) , в частности
Есть две возможности справиться с этим:
Вы уже
ppa-purge
установили. затемисправляет проблемы.
Переопределите libstc ++, загрузив libstdc ++ 6 для Xenial и установив его через
dpkg -i
.источник
ppa-purge
, не будет работать (тот же Python)sudo: ppa-purge: command not found
sudo apt install ppa-purge
apt
тоже не работал (согласно оригинальному сообщению).Мой комп не загрузился правильно из-за этой ошибки. Apt-get не работал, как и Gnome. Это было сразу после обновления с 14.04 до 16.04. Я решил это в tty, введя
В этот момент
apt-get
снова начал работать, и я смог исправить все проблемы оттуда:Мне также пришлось удалить Virtualbox (после команды обновления) и переустановить его позже, но я думаю, что это не было связано.
источник
apt-add-repository
команду в вашем ответе дает: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
http://security.ubuntu.com/ubuntu/pool/main/g/gcc-5/libstdc++6_5.4.0-6ubuntu1~16.04.10_amd64.deb
(илиi386
или оба) И не против, чтобы dpkg проклинал тебя. Сделайте,--auto--deconfigure
и выapt-get
вернетесь на ходу, несмотря на сообщения об ошибках. И вы сможете закончить с правильным-f --install
+--upgrade
и перезагрузиться в новую систему.Я думал, что проблема была чем-то уникальным для меня и была вызвана ошибкой загрузки.
Это обсуждение дало мне подсказку, в которой я нуждался. По сути, все, что нужно, это заменить libstdc ++. So.6.0.22 на libstdc ++. So.6.0.21 в / usr / lib / x86_64-linux-gnu отказавшей системы. (Кажется, есть ошибка в более новой версии.)
Это можно сделать с флешки или, как в моем случае, с нуля.
Полная информация по адресу: https://answers.launchpad.net/ubuntu/+question/395832
Спасибо всем...
источник
Следуя
dpkg -i
подходу в принятом ответе, для моего обновления 14.04-> 16.04 потребовался не один, а два пакета:После этого
apt upgrade
удалось загрузить остальные пакеты и завершить установку.источник
Если у вас установлена последняя версия оснастки «Заклинание» с Snappy на Yakkety, ваш apt будет сломан с очень похожей ошибкой:
из-за этой ошибки:
https://bugs.launchpad.net/snappy/+bug/1a677417
В настоящее время единственный обходной путь, о котором я знаю, - это удаление оснастки заклинания (или, возможно, «мгновенное восстановление» предыдущей версии, если она была установлена ранее).
источник
Исправление, которое работало для меня, состояло в том, чтобы фактически добавить ppa цепочки инструментов Ubuntu:
источник
Вы должны быть в состоянии исправить это, набрав:
sudo apt-get -f установить
без указания какого-либо пакета. Это должно сделать работу.
источник
С системами i386 может быть очень похожая проблема.
Чтобы решить эту проблему, мне также пришлось понизить версию gcc-5-base с версии
5.4.1-2ubuntu1~12.04
до5.4.0-6ubuntu1~16.04.4
.Чтобы завершить обновление до приемлемой системы, мне также пришлось использовать
dpkg --purge on vituoso_nepomuk
и virtualbox, чтобы избавиться от их файлов конфигурации, которые вызывали проблемы (для меня VirtualBox поставляется с пакетом virtualbox-5.1, который кажется невредимым при обновлении. )Ключ должен был добраться
dpkg --configure dbus
до работы.Чтобы включить wget на экране tty-типа, пользователям также может потребоваться выполнить
sudo dhclient eth0
включение сетевого подключения.источник
У меня только что была эта проблема при обновлении дистрибутива Ubuntu на Linux, я увидел это:
libstdc ++. so.6 -> libstdc ++. so.6cd -> libstdc ++. so.6.0.20
Но было два файла: libstdc ++. So.6.0.21 и libstdc ++. So.6.0.20
Я изменил символическую ссылку, чтобы она указала на последнюю версию libstdc ++. So.6.0.21
Результирующая:
и все пришло в норму
источник
Загрузите libstdc ++ 6 для вашей Ubuntu с веб-сайта менеджера пакетов Ubuntu. (используйте,
uname -a
чтобы найти архитектуру h / w и s / w).Бегать
Перезагрузка. Ubuntu должен загрузиться, но apt не установит новые пакеты.
Чтобы исправить зависимости и обновить систему, запустите эти команды
источник