これら 2 つの 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 パッチで更新されています。しかし、私の VA ツールは、これらのシステムに同じ脆弱性がまだ存在していることを報告しています。なぜこのようなことが起こるのか、またこれを克服するアイデアは何かご存知の方はいらっしゃいますか?
Python 3.6.9
デフォルトの python3 バージョンが最後のコマンド出力にまだ表示されているので、これが起こっていることを願っています。これについてアドバイスをいただける方はいらっしゃいますか?
答え1
python3 コマンドは、インストールされている多数の Python バイナリの 1 つにリンクされています。
他にも利用可能なものがあることがわかります。特定の例では、を使用すると、python3.6 --version
それが可能であることを示す出力が生成され3.6.9-1~18.04ubuntu1.4
、単に実行するとpython3.6
Pythonバージョン3.6のreplが起動すると思います。
python3 バイナリのどのバージョンのバリエーションがインストールされていて使用可能かを確認するには、実行してみてくださいls -la /usr/bin | grep python3
(3 を削除すると、python 2 も表示されます)。
コマンドにリンクできるPythonバージョンは1つだけですpython3
。上記のコマンドの出力は次のようになります。python3 -> python3.6
どれが最新であるかを確認するには、 を実行するwhich python3
必要があります/usr/bin/python3
。
あまり良い方法ではありませんが、python3
エイリアスを使用して、ユーザーセッションでコマンドの異なるバージョンを使用するようにすることができます。ベストプラクティスは、特定のバージョンが必要なプロジェクトディレクトリでalias python3='/usr/bin/python3.9'
を使用することです。apt install python-venv
/usr/bin/python3.9 -m venv .venv