Amazon Linux 2에서 Python 3.10를 설치하는 방법
테스트 환경
- 운영체제 버전 정보 확인
$ cat /etc/os-release
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
$ getconf LONG_BIT
64
- 시스템에 설치된 python version
$ python --version
Python 2.7.18
$ python3 --version
Python 3.7.9
1. 필수 패키지 설치
Python을 빌드하려면 필수 패키지를 설치해야 합니다.
sudo yum install -y gcc openssl-devel bzip2-devel libffi-devel
sudo yum install -y wget
python 최신 버전 설치
python 최신 버전 다운로드
https://www.python.org/downloads/source/
2. Python 3.10 소스 코드 다운로드
작업 디렉토리로 이동
cd /usr/local/src
Python 3.10 소스 코드를 다운로드합니다.
wget https://www.python.org/ftp/python/3.10.6/Python-3.10.6.tgz
3. Python 3.10 컴파일 및 설치
Python 3.10 소스 코드를 컴파일하고 설치합니다.
tar xf Python-3.10.6.tgz
cd Python-3.10.6
./configure --enable-optimizations
$ ./configure --enable-optimizations
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for python3.10... no
checking for python3... python3
checking for --enable-universalsdk... no
checking for --with-universal-archs... no
...
configure: creating ./config.status
config.status: creating Makefile.pre
config.status: creating Misc/python.pc
config.status: creating Misc/python-embed.pc
config.status: creating Misc/python-config.sh
config.status: creating Modules/ld_so_aix
config.status: creating pyconfig.h
creating Modules/Setup.local
creating Makefile
make
sudo make altinstall
$ make altinstall
gcc -pthread -c -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fno-semantic-interposition -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -DPy_BUILD_CORE -o Programs/python.o ./Programs/python.c
...
Looking in links: /tmp/tmpvh0w7rdz
Processing /tmp/tmpvh0w7rdz/setuptools-63.2.0-py3-none-any.whl
Processing /tmp/tmpvh0w7rdz/pip-22.2.1-py3-none-any.whl
Installing collected packages: setuptools, pip
Successfully installed pip-22.2.1 setuptools-63.2.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Python 3.10 버전 확인
Python 3.10.6이 정상적으로 설치되었는지 확인하려면 다음 명령을 실행합니다:
python3.10 --version
$ python3.10 --version
Python 3.10.6
pip3.10 --version
$ pip3.10 --version
pip 22.2.1 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)
버전 정보가 표시되어야 합니다.
이제 Amazon Linux 2에 Python 3.10이 설치되었습니다.
pip 업그레이드
python3.10 -m pip install --upgrade pip
update-alternatives 명령으로 python path 설정
update-alternatives --config python
$ which python3.10
/usr/local/bin/python3.10
update-alternatives --install /usr/bin/python python /usr/local/bin/python3.10 1
update-alternatives --config python
$ update-alternatives --config python
There is 1 program that provides 'python'.
Selection Command
-----------------------------------------------
*+ 1 /usr/local/bin/python3.10
Enter to keep the current selection[+], or type selection number: 1
python 버전 확인
$ python --version
Python 3.10.6
pip path 설정
$ ls -l /usr/local/bin/pip3.10
-rwxr-xr-x 1 root root 230 Aug 16 21:50 /usr/local/bin/pip3.10
ln -s /usr/local/bin/pip3.10 /usr/bin/pip
pip --version
$ pip --version
pip 22.2.1 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)
update-alternatives 명령어
update-alternatives 명령어는 대체 시스템에서 여러 버전의 소프트웨어를 관리하는 데 사용됩니다. 주로 리눅스 시스템에서 사용되며, 특히 여러 버전의 실행 파일, 라이브러리 또는 기타 시스템 구성 요소를 선택할 때 유용합니다.
$ update-alternatives --help
alternatives version 1.7.4 - Copyright (C) 2001 Red Hat, Inc.
This may be freely redistributed under the terms of the GNU Public License.
usage: alternatives --install <link> <name> <path> <priority>
[--initscript <service>]
[--family <family>]
[--slave <link> <name> <path>]*
alternatives --remove <name> <path>
alternatives --auto <name>
alternatives --config <name>
alternatives --display <name>
alternatives --set <name> <path>
alternatives --list
common options: --verbose --test --help --usage --version --keep-missing
--altdir <directory> --admindir <directory>
1. set 명령어
set 명령어를 사용하여 대체 시스템의 현재 설정을 변경할 수 있습니다. 이 명령어는 대체 시스템에서 선택한 대안을 설정하는 데 사용됩니다. 예를 들어, 여러 버전의 Java가 설치된 경우 특정 버전을 선택할 수 있습니다.
sudo update-alternatives --set <대안 이름> <대안 경로>
- <대안 이름>: 설정하려는 대안의 이름.
- <대안 경로>: 선택한 대안의 경로.
update-alternatives --set python /usr/bin/python3.8
2. install 명령어
install 명령어를 사용하여 새로운 대안을 등록하고 관리합니다. 이 명령어는 대체 시스템에 새로운 대안을 추가할 때 사용됩니다.
sudo update-alternatives --install <대안 이름> <링크 이름> <대안 경로> <우선 순위>
- <대안 이름>: 등록할 대안의 이름.
- <링크 이름>: 등록할 대안의 심볼릭 링크 이름.
- <대안 경로>: 대체 시스템에 등록할 대안의 경로.
- <우선 순위>: 대안의 우선 순위.
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2
3. remove 명령어
remove 명령어를 사용하여 대체 시스템에서 등록된 대안을 제거합니다.
sudo update-alternatives --remove <대안 이름> <대안 경로>
- <대안 이름>: 제거할 대안의 이름.
- <대안 경로>: 대체 시스템에서 제거할 대안의 경로.
alternatives --remove python /usr/local/bin/python3.10
update-alternatives 명령어를 사용하면 시스템에서 여러 버전의 소프트웨어를 관리하거나 특정 실행 파일 또는 라이브러리를 선택할 수 있습니다. 각 하위 명령어는 대체 시스템에서의 설정을 조작하고 관리하는 데 사용됩니다.
'퍼블릭 클라우드' 카테고리의 다른 글
Amazon Route 53 Invalid Change Batch 오류(InvalidChangeBatch 400) (0) | 2022.08.19 |
---|---|
Amazon Route 53(cli53) 명령어 도구 (0) | 2022.08.19 |
AWS Command Line Interface (AWS CLI)를 최신 버전으로 설치하는 방법 (0) | 2022.07.22 |
CNCF Cloud Native Interactive Landscape (0) | 2022.07.19 |
[AWS] macOS에 Session Manager 플러그인 설치 및 제거 (0) | 2022.07.17 |