Ich habe diese Fehlermeldung unter Windows 10 1903 mit WSL Ubuntu beobachtet, als ich ein Upgrade von 16.04 LTS auf 18.04 LTS durchführen wollte .
Nachdem do-release-upgrade
dies fehlgeschlagen war, wechselte ich python
zu jeder von angebotenen update-alternatives --config python
Option die Alternative und führte den Upgrade-Befehl erneut aus. Das hat nicht geholfen.
Dann überprüfte ich die Protokolldatei, /var/log/dist-upgrade/main.log
die die Zeilen enthielt
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
Obwohl in der Fehlermeldung python3 erwähnt wird , handelt es sich um python2 .
Das Upgrade-Skript prüft /usr/bin/python
, ob eine Verknüpfung /usr/bin/python2
besteht. Siehe Quellcode DistUpgrade/DistUpgradeController.py
hier: Ubuntu Launchpad
Eine Lösung besteht also darin, Python vollständig aus dem alternativen System zu entfernen und den Link manuell hinzuzufügen, wie in der beliebtesten Antwort beschrieben.
Wenn Sie Python nicht vom alternativen System entfernen möchten, ändern Sie den Link nur für die Zeit während des Aktualisierungsvorgangs:
# rm /usr/bin/python
# ln -sf /usr/bin/python2.7 /usr/bin/python
# do-release-upgrade
Das hat bei mir funktioniert.
Während des Upgrade-Vorgangs wird die Verbindung automatisch repariert. Wenn das Upgrade abgeschlossen ist, verweist es auf den Python-Eintrag im alternativen Verzeichnis:
$ ls -l /usr/bin/python
lrwxrwxrwx 1 root root 24 Sep 2 22:01 /usr/bin/python -> /etc/alternatives/python
Bearbeiten: Für gründliche Informationen kann das Problem auch auftreten, wenn Sie ein Upgrade von 18.04 LTS auf 19.04 durchführen und die Antwort auch für diese Situation gilt.