누구든지 이 두 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
내 문제는 Python 3.6.9에 CVE-2021-3177
. 에 따라https://ubuntu.com/security/cve-2021-3177이 취약점은 수정되어 (3.6.9-1~18.04ubuntu1.4)
출시되었습니다.
OS 서버는 최신 Ubuntu 패치로 업데이트됩니다. 그러나 동일한 취약점을 보고하는 My VA 도구는 여전히 이러한 시스템에 존재합니다. 왜 이런 일이 발생하는지, 그리고 이를 극복할 수 있는 방법을 아는 사람이 있나요?
Python 3.6.9
내 기본 python3 버전이 여전히 마지막 명령 출력과 같이 표시되기 때문에 이런 일이 발생하기를 바랍니다 . 누구든지 이것에 대해 조언을 할 수 있습니까?
답변1
python3 명령은 설치된 많은 Python 바이너리 중 하나에 연결됩니다.
사용 가능한 다른 것들이 있다는 것을 알 수 있습니다. 특정 예의 경우 사용하면 python3.6 --version
출력이 생성되고 3.6.9-1~18.04ubuntu1.4
단순히 python3.6
자체적으로 실행하면 Python 버전 3.6 repl이 시작될 것이라고 상상합니다.
python3 바이너리의 어떤 버전 변형이 설치되어 있고 사용 가능한지 확인하려면 실행을 시도해 보세요 ls -la /usr/bin | grep python3
(python 2도 보려면 3을 삭제하세요).
명령 에 연결된 Python 버전은 1개만 있을 수 있습니다 python3
. 위 명령의 출력은 다음과 같습니다.python3 -> python3.6
which python3
which shudl be 를 수행하여 어느 것이 현재인지 확인할 수 있습니다 /usr/bin/python3
.
그다지 좋은 방법은 아니지만 python3
별칭을 통해 사용자 세션에서 명령 에 대해 다른 버전을 사용하도록 할 수 있습니다 alias python3='/usr/bin/python3.9'
. 모범 사례는 apt install python-venv
특정 버전이 필요한 프로젝트 디렉터리에 있는 것입니다./usr/bin/python3.9 -m venv .venv