Мне для одной задачи непременно нужна версия Python чтобы была отличной от дефолтной Python3.10, к примеру, Python3.13 и плюс к этому нужно значить ее дефолтной при использовании в текущей системе на Ubuntu 22.04 Server которая установлена из образа: ubuntu-22.04-live-server-amd64.iso

Шаг №1: Обновляю систему до самого актуального состояния в рамках текущего LTS релиза:

sudo nano /etc/update-manager/release-upgrades
[DEFAULT]
Prompt=never
sudo rm -Rf /var/lib/apt/lists
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y
sudo reboot
uname -a && lsb_release -a
Linux srv-vpn 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy

Шаг №2: Настройки Locale:

sudo rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
sudo locale-gen en_US.UTF-8
echo "LC_ALL="en_US.UTF-8"" | sudo -s tee /etc/default/locale
echo "LANG="en_US.UTF-8"" | sudo tee -a /etc/default/locale
echo "LANGUAGE="en.US.UTF-8"" | sudo tee -a /etc/default/locale

Шаг №3: Текущая версия Python:

ekzorchik@srv-home:~$ python --version
-bash: /usr/bin/python: No such file or directory
ekzorchik@srv-home:~$ python3.10 -V
Python 3.10.12
ekzorchik@srv-home:~$
ekzorchik@srv-home:~$ whereis python3.10
python3.10: /usr/bin/python3.10 /usr/lib/python3.10 /etc/python3.10 /usr/local/lib/python3.10 /usr/share/man/man1/python3.10.1.gz
ekzorchik@srv-home:~$

Шаг №4: Устанавливаю дополнительный репозитарий содержащий новые версии Python3:

ekzorchik@srv-home:~$ sudo add-apt-repository ppa:deadsnakes/ppa

На заметку: Supported Ubuntu and Python Versions

====================================

- Ubuntu 20.04 (focal) Python3.5 - Python3.7, Python3.9 - Python3.13

- Ubuntu 22.04 (jammy) Python3.7 - Python3.9, Python3.11 - Python3.13

- Note: Python2.7 (all), Python 3.8 (focal), Python 3.10 (jammy) are not provided by deadsnakes as upstream ubuntu provides those packages.

ekzorchik@srv-home:~$ sudo bash -c "cat /etc/apt/sources.list.d/deadsnakes-ubuntu-ppa-jammy.list"
deb https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu/ jammy main
# deb-src https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu/ jammy main
ekzorchik@srv-home:~$

ekzorchik@srv-home:~$ apt-cache show python3.1[1-3] | grep Version
Version: 3.11.7-1+jammy1
Version: 3.11.0~rc1-1~22.04
Version: 3.12.1-1+jammy3
Version: 3.13.0~a2-1+jammy1
ekzorchik@srv-home:~$

ekzorchik@srv-home:~$ sudo apt-get install -y python3.13

ekzorchik@srv-home:~$ whereis python3.13
python3.13: /usr/bin/python3.13 /usr/lib/python3.13 /etc/python3.13 /usr/local/lib/python3.13 /usr/share/man/man1/python3.13.1.gz
ekzorchik@srv-home:~$

Шаг №5: Изменяем пользовательский Alias для работы с Python определенной версии:

ekzorchik@srv-home:~$ nano ~/.bashrc

alias python='/usr/bin/python3.13'

ekzorchik@srv-home:~$ source ~/.bashrc
ekzorchik@srv-home:~$ python -V
Python 3.13.0a2
ekzorchik@srv-home:~$

ekzorchik@srv-home:~$ python3 -V
Python 3.10.12
ekzorchik@srv-home:~$ nano ~/.bashrc

alias python='/usr/bin/python3.13'
alias python3='/usr/bin/python3.13'

ekzorchik@srv-home:~$ source ~/.bashrc
ekzorchik@srv-home:~$ python3 -V
Python 3.13.0a2
ekzorchik@srv-home:~$

Шаг №6: Также можно для всей системы через update-alternatives изменить, что по дефолту Python будет 3.13:

ekzorchik@srv-home:~$ nano ~/.bashrc
#alias python='/usr/bin/python3.13'
#alias python3='/usr/bin/python3.13'
ekzorchik@srv-home:~$ source ~/.bashrc

На заметку: Синтаксис update-alternatives

sudo update-alternatives --install needs <link> <name> <path> <priority>

для удаления прописанной строки:

update-alternatives: --remove needs <name> <path>

как пример:

ekzorchik@srv-home:~$ sudo update-alternatives --display python
update-alternatives: error: no alternatives for python

ekzorchik@srv-home:~$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.13 0
update-alternatives: renaming python link from /usr/bin/python3 to /usr/bin/python
ekzorchik@srv-home:~$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.13 1
update-alternatives: using /usr/bin/python3.13 to provide /usr/bin/python3 (python3) in auto mode

где 0 - дефолтный приоритет, потом 1 

ekzorchik@srv-home:~$ sudo update-alternatives --display python
python - manual mode
  link best version is /usr/bin/python3.13
  link currently points to /usr/bin/python3.13
  link python is /usr/bin/python
/usr/bin/python3.13 - priority 0
ekzorchik@srv-home:~$ sudo update-alternatives --display python3
python3 - auto mode
  link best version is /usr/bin/python3.13
  link currently points to /usr/bin/python3.13
  link python3 is /usr/bin/python3
/usr/bin/python3.13 - priority 1
ekzorchik@srv-home:~$

ekzorchik@srv-home:~$ python -V
Python 3.13.0a2
ekzorchik@srv-home:~$ python3 -V
Python 3.13.0a2
ekzorchik@srv-home:~$

Итого вроде как я правильно прописал что по умолчанию теперь в системе версия Python используется, как версия Python3.13

Сделал Logoff/Logon

ekzorchik@srv-home:~$ python -V
Python 3.13.0a2
ekzorchik@srv-home:~$ python3 -V
Python 3.13.0a2
ekzorchik@srv-home:~$

ekzorchik@srv-home:~$ su test
Password:
test@srv-home:/home/ekzorchik$ python -V
Python 3.13.0a2
test@srv-home:/home/ekzorchik$ python3 -V
Python 3.13.0a2
test@srv-home:/home/ekzorchik$ exit
exit
ekzorchik@srv-home:~$

На этом заметка завершена, вроде бы я правильно понял, как изменить чтобы по дефолту была версия Python3.13 с уважением автор блога Олло Александр aka ekzorchik.