Kann mir jemand helfen, den Unterschied zwischen diesen beiden Python-Ausgaben zu verstehen?
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
Mein Problem ist, dass Python 3.6.9 viele Sicherheitslücken hat, wie CVE-2021-3177
zum Beispiel:https://ubuntu.com/security/cve-2021-3177Diese Sicherheitslücke wurde behoben (3.6.9-1~18.04ubuntu1.4)
und freigegeben.
Die Betriebssystemserver sind mit den neuesten Ubuntu-Patches auf dem neuesten Stand. Mein VA-Tool meldet jedoch immer noch, dass in diesen Systemen immer noch dieselben Schwachstellen bestehen. Weiß jemand, warum das so ist, und hat jemand eine Idee, wie man das Problem lösen kann?
Ich hoffe, das passiert, weil meine Standard-Python3-Version immer noch Python 3.6.9
wie in der letzten Befehlsausgabe angezeigt wird. Kann mir jemand einen Rat dazu geben?
Antwort1
Der Befehl python3 ist mit einer der vielen installierten Python-Binärdateien verknüpft.
Sie können sehen, dass es noch andere gibt. Für Ihr spezielles Beispiel stelle ich mir vor, dass die Verwendung von python3.6 --version
eine Ausgabe erzeugt, die Ihnen mitteilt, dass dies der Fall ist. 3.6.9-1~18.04ubuntu1.4
Wenn Sie es einfach ausführen, python3.6
wird ein Python-Repl in der Version 3.6 gestartet.
Um herauszufinden, welche Versionsvarianten der Python3-Binärdateien installiert und verfügbar sind, führen Sie sie aus ls -la /usr/bin | grep python3
(lassen Sie die 3 weg, um auch Python 2 anzuzeigen).
Es kann nur eine Python-Version mit python3
dem Befehl verknüpft werden. Die Ausgabe für den obigen Befehl sollte etwa Folgendes ergeben:python3 -> python3.6
Sie können überprüfen, was aktuell ist, indem Sie Folgendes tun: „ which python3
what shodl be“ (was sein sollte) /usr/bin/python3
.
Es ist nicht sehr empfehlenswert, aber Sie können Ihre Benutzersitzung dazu bringen, eine andere Version für den python3
Befehl über Aliase zu verwenden: alias python3='/usr/bin/python3.9'
. Die beste Vorgehensweise wäre, apt install python-venv
und dann in ein Projektverzeichnis, in dem eine bestimmte Version benötigt wird/usr/bin/python3.9 -m venv .venv