Jak uczynić `python` aliasem` python3` w całym systemie w Debianie
Najnowsze aktualizacje mojego systemu testowego Debiana usunęły Pythona w wersji 2, a mam zainstalowany tylko Python 3 z python3. Nie ma już żadnego polecenia o nazwie python. Powoduje to awarie kilku skryptów, w tym skryptów zgodnych z Pythonem 3.
Chciałbym wiedzieć, jaki jest właściwy sposób globalnej konfiguracji pythonjako alias dla python3.
Jednym z brudnych rozwiązań byłoby ręczne zrobienie czegoś podobnego sudo ln -s /usr/bin/python{3,}, ale obawiam się, że może to nie być niezawodne dla przyszłych aktualizacji APT (lub ponownej instalacji Pythona 2 później). Inną opcją jest ustawienie aliasu, ale wtedy działałoby to tylko dla mojego użytkownika, a nie dla całego systemu.
Zwracam również uwagę, że w Ubuntu istnieje pakiet, python-is-python3który robi dokładnie to, ale nie ma takiego pakietu w Debianie.
Odpowiedzi
Jeśli chcesz, aby trzymać się zasady, że wszystko /usroprócz /usr/localpowinny pochodzić z pakietu, chciałbym faktycznie pobrać ten python-is-python3pakiet i zainstalować go. Dostarcza tylko /usr/bin/pythonłącze symboliczne i wymaganą dokumentację, a jego relacje z pakietami raczej nie spowodują problemów w przyszłości.
Alias nie pomoże w przekręcaniu skryptów, a biorąc pod uwagę, że pakiety Pythona nie używają alternatyw, tworzenie własnej alternatywy ( update-alternativesitp.) Nie byłoby solidnym rozwiązaniem.
Jeśli twoje skrypty używają /usr/bin/env python, możesz /usr/local/binzamiast tego ręcznie dodać link .
Niezależnie od tego, co zdecydujesz się zrobić, od teraz pakiety zależne od Pythona w Debianie muszą jawnie używać python2lub python3w swoich shebangach, więc nie napotkasz problemów spowodowanych przez pakiety z oficjalnych repozytoriów (w Debianie 11 i nowszych, z wyłączeniem niestabilne i na razie eksperymentalne, ponieważ wciąż mają stare pakiety Pythona, które nie zostały jeszcze wyczyszczone).
Wygląda na to, Debian jest teraz dostarczane python-is-python3 sobie (w sid i testowanie jak to pisze), więc założenie pytanie już nie trzyma i można po prostu: sudo apt update && sudo apt install python-is-python3.