apt: ошибка перемещения: версия GLIBCXX_3.4.21 не определена в файле libstdc ++. so.6 со ссылкой на ссылку

falconer довольно много прибил его, но я хотел бы указать упрощение.

Вы можете поместить команду xrandr непосредственно в /etc/lightdm/lightdm.conf в качестве falconer . Вам не нужно создавать команду оболочки для вызова отдельного скрипта, содержащего команду оболочки (хотя, конечно, вы можете, если увидите причину этого). Кроме того, в man lightdm нет упоминания о /etc/lightdm/lightdm.conf.d/, и у меня не было ни этого, ни lightdm.conf в моей системе. Итак, хотя я уверен, что это, вероятно, работает, как было предложено Стивеном, опять же вам не нужно это делать.

Итак, если он еще не существует, что-то вроде строк следующий в /etc/lightdm/lightdm.conf (sudo, очевидно) должен отлично работать:

[SeatDefaults]
display-setup-script=xrandr --output DVI-1 --auto --rotate left

См. man xrandr для параметров конфигурации.

Кстати: я, вероятно, мог уйти с комментариями / изменениями здесь, но у меня нет rep, и я хотел бы добавить источники для этой информации.

Версия

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.1 LTS
Release:    14.04
Codename:   trusty

Ссылки

[d11 ] man xrandr man lightdm https://wiki.ubuntu.com/LightDM

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

10 ответов

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

39
ответ дан 23 May 2018 в 10:45
  • 1
    Не могли бы вы поместить команды, шаг за шагом в свой ответ? Я не знаком с этим вообще, и моя Linux-машина была построена ... – Zachary Fields 20 July 2016 в 10:58
  • 2
    @Zachary Какая проблема вы столкнулись? Вы можете загрузиться? – Sagar Jha 20 July 2016 в 16:14
  • 3
    На самом деле, нет. Если я его отпустил, экран мерцает около 15 минут, после чего я получаю подсказку терминала tty2 в очень светло-сером цвете. Я не могу использовать apt (или любой инструмент на самом деле). Я даже пытался загрузить libstdc++6...deb с загрузочного USB-накопителя, вручную поместить пакет, перезагрузить его в сломанную систему и установить .deb с помощью sudo dpkg -i libstdc++6...deb, но он даже не знает, что dpkg. – Zachary Fields 20 July 2016 в 20:04
  • 4
    Чтобы загрузить / установить файл .deb, вы можете сделать: 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. – Garrett 25 August 2016 в 07:25
  • 5
    Мне пришлось использовать dpkg --force-all -i libstdc+‌​+6_5.4.0-6ubuntu1~16‌​.04.2_amd64.deb, чтобы установить его – virtualxtc 26 July 2017 в 08:49

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

7
ответ дан 23 May 2018 в 10:45
  • 1
    Я попробовал это, но получил ошибку импорта в пакете apt_pkg – Mixone 21 August 2016 в 11:17
  • 2
    Миксоне, какова была точная ошибка и какая именно команда? – Matjaz 23 August 2016 в 13:22
  • 3
    sudo apt-get update ошибка возникла из бэкэнда python, я думаю, stacktrace был python, и в основном он сказал, что не может найти модуль apt_pkg – Mixone 24 August 2016 в 10:49
  • 4
    Для меня такая же проблема, пытаясь использовать команду 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 – Garrett 25 August 2016 в 07:10

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

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

Это можно сделать с помощью большого пальца или, как в моем случае, с нуля.

Полная информация на : https://answers.launchpad.net/ubuntu/+question/395832

Спасибо всем ...

4
ответ дан 23 May 2018 в 10:45
  • 1
    Я использовал этот трюк, но сделал двойную загрузку на каком-то запасном пространстве. Я смог легко установить исходный раздел. Это было довольно легко. – Andrew 22 September 2016 в 03:53
  • 2
    Awesome - эти 3 команды работали для меня: cd / usr / lib / x86_64-linux-gnu / & gt; & gt; & gt; & gt; & gt; & gt; & gt; sudo rm libstdc ++. so.6 & gt; & gt; & gt; & gt; & gt; sudo ln -s libstdc ++. so.6.0.21 libstdc ++. so.6 – osman 17 May 2017 в 21:20

Следуя подходу 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
ответ дан 23 May 2018 в 10:45

Если у вас установлена ​​последняя версия «заклинания», установленного с помощью Snappy on Yakkety, ваш apt будет разбит с очень похожей ошибкой:

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

из-за этой ошибки: [ ! d1]

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

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

1
ответ дан 23 May 2018 в 10:45

Вы можете исправить это, набрав:

sudo apt-get -f install

без указания какого-либо пакета. Он должен выполнить эту работу.

0
ответ дан 23 May 2018 в 10:45

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

0
ответ дан 23 May 2018 в 10:45

Исправление, которое сработало для меня, было на самом деле добавить Ubuntu toolchain ppa назад:

sudo apt-add-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install -f
sudo apt-get upgrade
0
ответ дан 23 May 2018 в 10:45

У меня была эта проблема при обновлении дистрибутива ubuntu на 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 ++. 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

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
ответ дан 23 May 2018 в 10:45
Загрузите libstdc ++ 6 для своего ubuntu с веб-сайта менеджера пакетов Ubuntu. (используйте uname -a для поиска h / w и s / w-архитектуры). Запустить
sudo dpkg --install --auto-deconfigure libstdc++6...deb
Перезагрузка. Ubuntu должен загружаться, но apt не будет устанавливать новые пакеты. Чтобы исправить зависимости и обновить систему, запустите эти команды
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
ответ дан 23 May 2018 в 10:45

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

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