Це повідомлення про помилку я спостерігав у 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, і косинець також стосується цієї ситуації.