상태
우리 회사에는 내부 서버가 있습니다
- 오픈수세 도약 15.5
- 파이썬 3.6(.15)
- 파이썬 2.7(.18)
자세한 내용은 세부정보를 확인하세요.
일
Python 3.6이 중단되었으므로최신 Python 설치(3.10 또는 3.11).
~을 위한아무것도 파괴하지 마세요제 생각에는
- 새로운 Python을 병렬로 설치
- 추가로 설치합니다(기존 설치 또는 별칭을 교체하거나 중단하지 않고).
- 어디서나 사용 가능(스크립트)
이 서버는 개발 프로세스에 매우 중요하므로 위험을 최대한 줄이고 싶습니다.
질문
- 시스템 안정성, 다른 Python 설치 및 "python" 바이너리/심볼릭 링크 측면에서 다른 Python을 설치하는 것은 얼마나 위험합니까?
- 가장 덜 위험한 방법으로 Python을 설치하려면 어떻게 해야 합니까?
세부 사항
***:~> cat /etc/os-release NAME="openSUSE Leap" VERSION="15.5" ID="opensuse-leap" ID_LIKE="suse opensuse" VERSION_ID="15.5" PRETTY_NAME="openSUSE Leap 15.5" ANSI_COLOR="0;32" CPE_NAME="cpe:/o:opensuse:leap:15.5" BUG_REPORT_URL="https://bugs.opensuse.org" HOME_URL="https://www.opensuse.org/" DOCUMENTATION_URL="https://en.opensuse.org/Portal:Leap" LOGO="distributor-logo-Leap" ***:~> zypper info python ... Repository : Update repository with updates from SUSE Linux Enterprise 15 Name : python Version : 2.7.18-150000.51.1 Arch : x86_64 Vendor : SUSE LLC <https://www.suse.com/> Installed Size : 1.4 MiB Installed : Yes (automatically) Status : up-to-date Source package : python-2.7.18-150000.51.1.src Upstream URL : https://www.python.org/ Summary : Python Interpreter ... ***:~> zypper info python3 ... Repository : Update repository with updates from SUSE Linux Enterprise 15 Name : python3 Version : 3.6.15-150300.10.48.1 Arch : x86_64 Vendor : SUSE LLC <https://www.suse.com/> Installed Size : 141.3 KiB Installed : Yes (automatically) Status : up-to-date Source package : python3-3.6.15-150300.10.48.1.src Upstream URL : https://www.python.org/ Summary : Python 3 Interpreter ....
답변1
이 솔루션은 openSUSE에서만 작동합니다. SUSE Linux Enterprise Server에서도 사용할 수 있지만 현재는 지원되지 않습니다. 자신의 책임하에 사용하십시오!
당신은 시도 할 수 있습니다피엔브, 특정 사용자가 다른 Python 버전을 사용할 수 있도록 허용합니다. 나는 그것을 몇 달 동안 사용해 왔으며 매우 만족하고 있습니다.
귀하의 정책이 이를 허용하는지 잘 모르겠습니다. 그러나 이 솔루션은 시스템에 미치는 영향이나 중단을 최소화합니다. 시스템을 망칠 필요가 없습니다.
이는 다음에만 적용된다는 점을 기억하세요.특정한사용자. 다른 사용자는 이 변경 사항을 볼 수 없으며 영향을 받지 않습니다. 이는 장점일 수도 있고 아닐 수도 있습니다.
시스템 준비
특정 Python 버전을 사용하기 전에 해당 버전을 설치하고 구성해야 합니다 pyenv
.
다음과 같이 진행해주세요:
통합개발: 언어: Python: 백포트귀하의 시스템으로 환매하십시오.
pyenv 패키지를 설치합니다.
$ sudo zypper install --details pyenv
Python을 빌드하는 데 필요한 다음 개발 패키지를 설치합니다.
$ sudo zypper install -y gcc automake bzip2 libbz2-devel \ xz xz-devel openssl-devel ncurses-devel readline-devel \ zlib-devel tk-devel libffi-devel sqlite3-devel \ gdbm-devel make findutils patch
~/.bashrc 파일에 다음 줄을 추가합니다.
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc
다른 셸을 사용하는 경우 다음을 참조하세요.https://github.com/pyenv/pyenv#set-up-your-shell-environment-for-pyenv
재시작 셸을 사용
exec $SHELL
하거나 콘솔을 닫고 새 콘솔을 엽니다.
다른 Python 버전 설치
이제 시스템이 준비되었습니다. 이 pyenv
명령은 요청된 버전을 다운로드하고 컴파일한 후 에 저장합니다 ~/.pyenv/versions/
. 이 작업이 완료되면 셸에서 새 Python 버전을 사용할 수 있습니다.
특정 Python 버전을 설치하려면 다음 단계를 따르세요.
Python 버전(예: 3.11)을 설치합니다.
$ pyenv install 3.11
특정 사용자에 대해 이 버전을 설정하십시오.
$ pyenv global 3.11
현재 디렉토리로 제한하려면 다음을 사용하십시오.
$ pyenv local 3.11
pip3
로컬 설치로 해결되는지 확인하십시오 .$ pip3.11 --version pip 23.1.2 from /home/tux/.pyenv/versions/3.11.4/lib/python3.11/site-packages/pip (python 3.11)
대신 사용자를 가리키는 디렉터리가 표시되어야 합니다
/usr/
.
시스템을 준비한 후 pyenv
Python 라이브러리를 로컬 설치에 설치할 수 있습니다. 예를 들어:
$ pip3.11 install <LIBRARY>
결론
이 방법은 RPM 시스템과 zypper를 우회한다는 점을 명심하십시오. 당신은 그들로부터 어떤 업데이트도 받을 수 없습니다. 그러나 최신 Python 버전이 필요한 경우 pyenv
최신 버전에 액세스하려면 패키지를 업데이트해야 합니다 .
또한 RPM에서 제공되는 Python 버전에 주의해야 합니다. 비슷한 이름( pip3.11
vs. ) 이 있어서 헷갈릴 수도 있어요 pip3-3.11
.