apt install python3.11은 여러 버전의 Python을 설치합니다.

apt install python3.11은 여러 버전의 Python을 설치합니다.

다음 도커 파일이 있습니다. 기본 이미지 rundeckpro/runner:latest; Python이 설치되어 있지 않습니다. 이미지가 빌드된 후에는 python3.10과 python3.11이라는 두 가지 버전의 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명시적으로 사용해야 합니다.)

관련 정보