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. Излишне говорить, что это затрудняет что-либо делать.

Есть ли намеки?

63
задан 26 May 2016 в 17:11

12 ответов

Преступник является остатками от , PPA для Загрузок Набора инструментальных средств Ubuntu (ограничил) , конкретно

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

существует две возможности контакта с этим:

  • Вы уже имеете ppa-purge установленный. Затем

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

    устраняет проблемы.

  • Переопределение libstc ++ путем загрузки libstdc ++ 6 для Гостеприимного и установки его через dpkg -i.

26
ответ дан 27 May 2016 в 03:11

Я думал, что проблема была чем-то уникальным для меня и была вызвана ошибкой загрузки.

Это обсуждение дало мне ключ к разгадке, в котором я нуждался. В основном все, что было необходимо, должно было заменить libstdc ++. таким образом с libstdc ++. таким образом в/usr/lib/x86_64-linux-gnu провальной системы. (Кажется, что в более новой версии существует ошибка.)

Это может быть сделано от карты флэш-памяти или, как в моем случае, от рабочего диска.

Полное изложение в: https://answers.launchpad.net/ubuntu / + вопрос/395832

Благодаря всем...

4
ответ дан 27 May 2016 в 03:11

Мне вызвали ту же проблему проблемы от PPA для набора инструментальных средств Ubuntu. Мой компьютер не загрузился бы из-за этого. Следующий @w00kie комментируют его ответ, я загрузил (с tty терминала) debian пакета libstdc++6 для Xenial в ссылке https://packages.ubuntu.com/xenial/libstdc ++ 6 и установил использование dpkg -i. Компьютер работает просто великолепно теперь.

Шаги

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
55
ответ дан 27 May 2016 в 03:11

Моему аккомпанементу не удалось загрузиться правильно из-за этой ошибки. Кв. - добирается, не работал, ни был Gnome. Это сразу было после обновления от 14,04 до 16,04. Я решил его в tty путем ввода

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 (после того, как команда обновления), и повторно установите его позже, но я думаю, что это было не связано.

8
ответ дан 27 May 2016 в 03:11

Необходимо смочь зафиксировать его путем ввода:

sudo Кв. - получают установку-f

без specifing любой пакет. Это должно сделать работу.

0
ответ дан 27 May 2016 в 03:11

Может быть очень похожая проблема с 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 для включения проводного соединения Ethernet.

0
ответ дан 27 May 2016 в 03:11

Фиксация, которая работала на меня, должна была на самом деле добавить набор инструментальных средств Ubuntu ppa назад:

sudo apt-add-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install -f
sudo apt-get upgrade
1
ответ дан 27 May 2016 в 03:11

Если у Вас будет последняя версия снимка 'колдования', установленного с Мгновенным на Yakkety, то Ваша Кв. будет повреждена с очень похожей ошибкой:

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

В настоящее время единственное обходное решение, о котором я знаю, является удалением снимка колдования (или возможно 'снимок возвращается' он к предыдущей версии, если у Вас был тот, установленный предшествующий).

2
ответ дан 27 May 2016 в 03:11

У меня только что была эта проблема при обновлении распределения человечности на Linux, я видел что:

# 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 ++. таким образом-> libstdc ++. таким образом-> libstdc ++. таким образом 6.0.20

, Но было два файла: libstdc ++. таким образом 6.0.21, и libstdc ++. таким образом 6.0.20

я изменил символьную ссылку для указания на последнюю версию libstdc ++. таким образом 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

Получающийся:

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

и все возвратилось к нормальному

0
ответ дан 27 May 2016 в 03:11

После эти 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 смог загрузить остающиеся пакеты и завершить установку.

3
ответ дан 27 May 2016 в 03:11
  1. Загрузка libstdc ++ 6 для Вашей человечности с веб-сайта диспетчера пакетов Ubuntu. (используйте uname -a для нахождения h/w и s/w архитектуры).

  2. Выполнение

    sudo dpkg --install --auto-deconfigure libstdc++6...deb
    
  3. Перезагрузка. Ubuntu должна загрузиться, но склонный не установил бы новые пакеты.

  4. , Чтобы зафиксировать зависимости и сделать систему актуальной, выполните эти команды

    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
ответ дан 27 May 2016 в 03:11

единственное, что вам нужно сделать, это скопировать /usr/lib/x86_64-linux-gnu/libstdc++.so.6 из обычного Ubuntu 16.04. Это самый простой способ.

0
ответ дан 7 December 2019 в 18:26

Другие вопросы по тегам:

Похожие вопросы: