Comment faire de `python` un alias de` python3` dans tout le système sur Debian
Les dernières mises à jour de mon système de test Debian ont supprimé Python version 2, et je n'ai installé que Python 3, avec python3. Il n'y a plus de commande nommée python. Cela provoque l'échec de plusieurs scripts, y compris des scripts compatibles avec Python 3.
Je serais intéressé de savoir quelle est la bonne façon de configurer globalement pythonen tant qu'alias pour python3.
Une solution sale serait de faire manuellement quelque chose comme sudo ln -s /usr/bin/python{3,}, mais je crains que cela ne soit pas robuste pour les futures mises à jour APT (ou si vous réinstallez Python 2 plus tard). Une autre option consiste à définir un alias, mais cela ne fonctionnerait que pour mon utilisateur, pas pour tout le système.
Je note également que sur Ubuntu, il existe un paquet python-is-python3qui fait précisément cela, mais il n'y en a pas sur Debian.
Réponses
Si vous voulez vous en tenir à la règle selon laquelle tout ce qui est à /usrpart /usr/localdoit provenir d'un package, je téléchargerais en fait le python-is-python3package et l'installerais. Il ne /usr/bin/pythonfournit que le lien symbolique et la documentation requise, et ses relations avec les packages ne risquent pas de poser des problèmes à l'avenir.
Un alias n'aidera pas avec les shebangs de vos scripts, et étant donné que les packages Python n'utilisent pas d'alternatives, créer votre propre alternative ( update-alternativesetc.) ne serait pas une solution robuste.
Si vos scripts utilisent /usr/bin/env python, vous pouvez ajouter manuellement un lien à la /usr/local/binplace.
Indépendamment de ce que vous décidez de faire, à partir de maintenant, les paquets dépendants de Python dans Debian doivent utiliser explicitement python2ou python3dans leurs shebangs, de sorte que vous ne rencontrerez pas de problèmes causés par les paquets des dépôts officiels (dans Debian 11 et versions ultérieures, à l'exclusion instable et expérimental pour le moment car ceux-ci ont encore d'anciens packages Python qui n'ont pas encore été nettoyés).
On dirait que Debian est maintenant expédition python-est-python3 eux - mêmes (en sid et le test de cette écriture), de sorte que la prémisse de la question ne tient plus et vous pouvez simplement: sudo apt update && sudo apt install python-is-python3.