apt install python3.11は複数のバージョンのPythonをインストールします。

apt install python3.11は複数のバージョンのPythonをインストールします。

次のドッカーファイルがあります。基本イメージrundeckpro / runner:latest; Pythonがインストールされていません。イメージが構築された後、python3.10とpython3.11という2つのバージョンのPythonがあります。しかし、私はpython3.11だけを要求しました。これには理由がありますか?これを避けることはできますか?

ARG RUNNER_VERSION=latest
FROM rundeckpro/runner:${RUNNER_VERSION}

ARG PYTHON_VERSION=python3.11
ARG DEBIAN_FRONTEND=noninteractive

USER root

RUN apt-get update && \
    apt-get install -y --no-install-recommends software-properties-common && \
    apt-get install -y --no-install-recommends gpg-agent && \
    add-apt-repository -y ppa:deadsnakes/ppa && \
    apt-get install -y --no-install-recommends $PYTHON_VERSION && \
    apt-get install -y --no-install-recommends $PYTHON_VERSION-venv && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1    

USER runner

ベストアンサー1

rundeckpro/runner現在、Ubuntu 22.04に基づいており、22.04のPythonのデフォルトバージョンは3.10です。software-properties-commonPythonによって異なりますので、インストール時に最終的にpython3.10

software-properties-commonインストールするだけでいいからデッドスネークPPA、PPAをインストールした後に削除できます。

RUN apt-get update && \
    apt-get install -y --no-install-recommends software-properties-common gpg-agent && \
    add-apt-repository -y ppa:deadsnakes/ppa && \
    apt-get purge -y --autoremove software-properties-common gpg-agent && \
    apt-get install -y --no-install-recommends $PYTHON_VERSION && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

これはあなたに与えるでしょうが、python3.11そうではありませんpython3.10

残念ながら、python3.11-venvDead Snake PPAでも状況によって異なりpython3-distutilsます。python3python3.10

また、あえて代替品を探さないでください。 Pythonパッケージは代替手段を使用しません。必要に応じて、python3次のリンクでリンクしてください。

ln -sf python3.11 /usr/bin/python3

python3(ただし、パッケージがインストールされている場合、これが問題を引き起こす可能性があることに注意してください。パッケージに必要な場合は、python3シンボリックリンクを単独にして明示的python3.11に使用する必要があります。)

おすすめ記事