¿Alguien puede ayudarme a comprender la diferencia entre estas dos salidas de Python?
root@ip-192-168-20-21:~# apt install python3
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3 is already the newest version (3.6.7-1~18.04).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@ip-192-168-20-21:~# apt install python3.6
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3.6 is already the newest version (3.6.9-1~18.04ubuntu1.4).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@ip-192-168-20-21:~# python3 --version
Python 3.6.9
cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.5 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.5 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
Mi problema es que Python 3.6.9 tiene muchas vulnerabilidades de seguridad como CVE-2021-3177
. segúnhttps://ubuntu.com/security/cve-2021-3177esta vulnerabilidad ha sido reparada (3.6.9-1~18.04ubuntu1.4)
y liberada.
Los servidores del sistema operativo están actualizados con los últimos parches de Ubuntu. Sin embargo, la herramienta My VA sigue informando las mismas vulnerabilidades que todavía existen en estos sistemas. ¿Alguien sabe por qué sucede esto y alguna idea para superarlo?
Espero que esto esté sucediendo porque mi versión predeterminada de Python3 todavía se muestra Python 3.6.9
como en el resultado del último comando. ¿Alguien puede aconsejarme sobre esto?
Respuesta1
El comando python3 está vinculado a uno de los muchos archivos binarios de Python instalados.
Puede ver que hay otros disponibles, para su ejemplo específico, imagino que usarlo python3.6 --version
producirá un resultado que le indicará que lo es 3.6.9-1~18.04ubuntu1.4
y simplemente ejecutarlo python3.6
iniciará una respuesta de Python versión 3.6.
Para saber qué versiones de los binarios de Python3 están instaladas y disponibles, intente ejecutar ls -la /usr/bin | grep python3
(suelte el 3 para ver cualquier Python 2 allí también).
Solo puede haber 1 versión de Python vinculada al python3
comando, el resultado del comando anterior debería darle algo comopython3 -> python3.6
Puede verificar cuál está actualizado haciendo which python3
cuál debería ser /usr/bin/python3
.
No es una muy buena práctica, pero puedes hacer que tu sesión de usuario use una versión diferente para el python3
comando mediante alias: alias python3='/usr/bin/python3.9'
. La mejor práctica sería ir apt install python-venv
y luego dentro de un directorio de proyecto donde se necesita una versión específica./usr/bin/python3.9 -m venv .venv