Я наблюдал это сообщение об ошибке в Windows 10 1903 с запущенной WSL Ubuntu, когда хотел обновить систему с 16.04 LTS до 18.04 LTS .
После do-release-upgrade
неудачи я переключил python
альтернативы на каждый предложенный вариант update-alternatives --config python
и снова выполнил команду обновления. Это не помогло.
Затем я проверил файл журнала, /var/log/dist-upgrade/main.log
который содержал строки
2019-09-02 20:58:08,686 DEBUG _pythonSymlinkCheck run
2019-09-02 20:58:08,687 DEBUG python symlink points to: '/etc/alternatives/python', but expected is 'python2.7' or
'/usr/bin/python2.7'
2019-09-02 20:58:08,688 ERROR pythonSymlinkCheck() failed, aborting
Поэтому, хотя в сообщении об ошибке упоминается python3 , проблема заключается в python2 .
Сценарий обновления проверяет наличие /usr/bin/python
ссылок /usr/bin/python2
на исходный код DistUpgrade/DistUpgradeController.py
здесь: панель запуска ubuntu
Поэтому одним из решений является полное удаление python из альтернативной системы и добавление ссылки вручную, как описано в самом популярном ответе.
Если вы не хотите удалять python из альтернативной системы, просто измените ссылку только на время процесса обновления:
# rm /usr/bin/python
# ln -sf /usr/bin/python2.7 /usr/bin/python
# do-release-upgrade
Это сработало для меня.
В процессе обновления ссылка автоматически восстанавливается. Поэтому, когда обновление завершено, оно указывает на запись python в каталоге альтернатив:
$ ls -l /usr/bin/python
lrwxrwxrwx 1 root root 24 Sep 2 22:01 /usr/bin/python -> /etc/alternatives/python
Изменить: для подробной информации, проблема может также появиться, если вы обновляете с 18.04 LTS до 19.04, и anwser также относится к этой ситуации.