본문 바로가기

퍼블릭 클라우드

Amazon Linux 2에서 Python 3.10를 설치하는 방법

728x90

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/

p1

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이 설치되었습니다.

728x90

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 명령어를 사용하면 시스템에서 여러 버전의 소프트웨어를 관리하거나 특정 실행 파일 또는 라이브러리를 선택할 수 있습니다. 각 하위 명령어는 대체 시스템에서의 설정을 조작하고 관리하는 데 사용됩니다.

 

728x90