Ho osservato questo messaggio di errore su Windows 10 1903 con WSL Ubuntu quando volevo aggiornare da 16.04 LTS a 18.04 LTS .
Dopo do-release-upgrade
aver fallito, ho cambiato python
alternativa a ogni scelta offerta update-alternatives --config python
ed eseguito nuovamente il comando upgrade. Questo non ha aiutato.
Quindi ho controllato il file di registro /var/log/dist-upgrade/main.log
che conteneva le righe
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
Quindi, sebbene il messaggio di errore menzioni python3 , il problema riguarda python2 .
Lo script di aggiornamento controlla il /usr/bin/python
collegamento a /usr/bin/python2
, vedere il codice sorgente DistUpgrade/DistUpgradeController.py
qui: Ubuntu Launchpad
Quindi una soluzione è rimuovere completamente Python dal sistema alternativo e aggiungere manualmente il collegamento, come descritto nella risposta più popolare.
Se non vuoi rimuovere python dal sistema alternativo, cambia il collegamento solo per il tempo durante il processo di aggiornamento:
# rm /usr/bin/python
# ln -sf /usr/bin/python2.7 /usr/bin/python
# do-release-upgrade
Questo ha funzionato per me.
Durante il processo di aggiornamento, il collegamento viene riparato automaticamente. Quindi, al termine dell'aggiornamento, punta alla voce Python nella directory delle alternative:
$ ls -l /usr/bin/python
lrwxrwxrwx 1 root root 24 Sep 2 22:01 /usr/bin/python -> /etc/alternatives/python
Modifica: per informazioni complete, il problema potrebbe apparire anche se si aggiorna da 18.04 LTS a 19.04 e la risposta si applica anche a questa situazione.