Как делают меня “-обновление-версии” снова?

Я обновляю Ubuntu от 14,04 до 18,04. Я работал

$ sudo do-release-upgrade

Это вышло с ошибками, коснувшись emacs и emacs24. Я удалил те пакеты с dpkg, и я теперь хотел бы завершить обновление версии. Однако, когда я пытаюсь повторно выполниться do-release-upgrade, Я получаю следующую ошибку:

isaac@isaac-ThinkPad-T440s:~$ sudo do-release-upgrade
Traceback (most recent call last):
  File "/usr/bin/do-release-upgrade", line 11, in <module>
    from UpdateManager.Core.MetaRelease import MetaReleaseCore
  File "/usr/lib/python3/dist-packages/UpdateManager/Core/MetaRelease.py", line 25, in <module>
    import apt
  File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
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 file libstdc++.so.6 with link time reference

Я получаю подобную ошибку, когда я работаю apt или apt-get, но dpkg кажется, прекрасен.Что мне делать?

1
задан 4 October 2018 в 06:05

1 ответ

Частичное обновление, кажется, представило некоторый новый код, который ожидает, что будет существовать более новая версия libstdc ++. Существует два решения, которые могут работать на Вас:

Проверка, если более новый libstdc ++ существует на Вашем диске

$ ls -lh /usr/lib/x86_64-linux-gnu/libstdc++.*
> /usr/lib/x86_64-linux-gnu/libstdc++.so.6 -> libstdc++.so.6.0.25
> /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25

, Это показывает в моей системе существует только один libstdc++, который является 6.0.25 - но для Вашей системы могли бы быть несколько с последним, не правильно связанным (-> средства, это - символьная ссылка)

, можно выполнить эту команду, чтобы вынудить символьную ссылку указать на более новую:

sudo ln -s libstdc++.so.6.x.x libstdc++.so.6

Замена 6.x.x с новой версией Вы имеете.

Загрузка libstdc ++ вручную

Загрузка libstdc ++ 6_8-20180414-1ubuntu2_amd64.deb и установка он с помощью dpkg

wget 'https://mirrors.kernel.org/ubuntu/pool/main/g/gcc-8/libstdc++6_8-20180414-1ubuntu2_amd64.deb'
dpkg -i libstdc++6_8-20180414-1ubuntu2_amd64.deb

, Если это жалуется, что этому нужна зависимость, необходимо будет повторить процесс выше для всех пакетов, перечисленных как зависимости (libc6, gcc-8-base, и т.д.) Они могут быть найдены здесь:

https://packages.ubuntu.com/bionic/libstdc ++ 6

0
ответ дан 7 December 2019 в 23:03

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

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