Zauważyłem ten komunikat o błędzie w systemie Windows 10 1903 z uruchomionym WSL Ubuntu, gdy chciałem uaktualnić z 16.04 LTS do 18.04 LTS .
Po tym, do-release-upgrade
jak zawiodło, zamieniłem python
alternatywy na wszystkie opcje oferowane przez update-alternatives --config python
i ponownie uruchomiłem polecenie aktualizacji. To nie pomogło.
Następnie sprawdziłem plik dziennika /var/log/dist-upgrade/main.log
zawierający linie
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
Więc chociaż komunikat o błędzie wspomina o python3 , problem dotyczy python2 .
Skrypt aktualizacji sprawdza /usr/bin/python
połączenie z /usr/bin/python2
, zobacz kod źródłowy DistUpgrade/DistUpgradeController.py
tutaj: starter Ubuntu
Jednym z rozwiązań jest całkowite usunięcie Pythona z alternatywnego systemu i ręczne dodanie linku, jak opisano w najpopularniejszej odpowiedzi.
Jeśli nie chcesz usuwać Pythona z alternatywnego systemu, po prostu zmień łącze tylko na czas podczas procesu aktualizacji:
# rm /usr/bin/python
# ln -sf /usr/bin/python2.7 /usr/bin/python
# do-release-upgrade
To zadziałało dla mnie.
Podczas procesu aktualizacji łącze jest automatycznie naprawiane. Kiedy aktualizacja zostanie zakończona, wskazuje na pozycję python w katalogu alternatyw:
$ ls -l /usr/bin/python
lrwxrwxrwx 1 root root 24 Sep 2 22:01 /usr/bin/python -> /etc/alternatives/python
Edycja: w celu uzyskania dokładnych informacji problem może pojawić się również w przypadku aktualizacji z 18.04 LTS do 19.04, a odpowiedź dotyczy również tej sytuacji.