Я обновляю 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
кажется, прекрасен.Что мне делать?
Частичное обновление, кажется, представило некоторый новый код, который ожидает, что будет существовать более новая версия 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 ++ 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
, и т.д.) Они могут быть найдены здесь: