J'ai observé ce message d'erreur sur Windows 10 1903 exécutant WSL Ubuntu lorsque je voulais passer de 16.04 LTS à 18.04 LTS .
Après do-release-upgrade
avoir échoué, j'ai changé d' python
alternative à tous les choix proposés par update-alternatives --config python
et j'ai réexécuté la commande de mise à niveau. Cela n'a pas aidé.
Ensuite, j'ai vérifié le fichier journal /var/log/dist-upgrade/main.log
qui contenait les lignes
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
Ainsi, bien que le message d'erreur mentionne python3 , le problème concerne python2 .
Le script de mise à niveau vérifie la /usr/bin/python
liaison avec /usr/bin/python2
, voir le code source DistUpgrade/DistUpgradeController.py
ici: ubuntu launchpad
Une solution consiste donc à supprimer complètement python du système alternatif et à ajouter le lien manuellement, comme décrit dans la réponse la plus courante.
Si vous ne souhaitez pas supprimer python du système alternatif, modifiez simplement le lien uniquement pendant la durée du processus de mise à niveau:
# rm /usr/bin/python
# ln -sf /usr/bin/python2.7 /usr/bin/python
# do-release-upgrade
Cela a fonctionné pour moi.
Pendant le processus de mise à niveau, le lien est automatiquement réparé. Ainsi, lorsque la mise à niveau est terminée, elle pointe vers l'entrée python dans le répertoire des alternatives:
$ ls -l /usr/bin/python
lrwxrwxrwx 1 root root 24 Sep 2 22:01 /usr/bin/python -> /etc/alternatives/python
Modifier: pour des informations approfondies, le problème peut également apparaître si vous passez de 18.04 LTS à 19.04 et la réponse s'applique également à cette situation.