Amazon Linux 2에서 Python 3.12+를 컴파일하고 설치하는 방법

발행: (2026년 1월 3일 오전 11:41 GMT+9)
2 분 소요
원문: Dev.to

Source: Dev.to

소개

Amazon Linux 2는 기본 저장소를 통해 Python 3.12를 제공하지 않습니다.
다음 스크립트는:

  • OpenSSL 1.1.1을 수동으로 빌드합니다.
  • 해당 OpenSSL을 사용해 Python 3.12를 컴파일합니다.
  • 시스템 Python을 손상시키지 않고 Python을 설치합니다.
  • 가상 환경을 안전하게 생성합니다.

스크립트 개요 – 이 스크립트가 수행하는 작업

시스템 업데이트 및 필수 패키지

#!/bin/bash
# Update the system
sudo yum update -y

# Install development tools and required libraries
sudo yum groupinstall -y "Development Tools"
sudo yum install -y openssl-devel bzip2-devel libffi-devel zlib-devel \
    readline-devel sqlite-devel ncurses-devel gdbm-devel \
    db4-devel expat-devel gcc gcc-c++ make perl-core \
    xz-devel libuuid-devel tk-devel tcl-devel

OpenSSL 1.1.1 빌드 및 설치

cd /tmp/
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar xzf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w

./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zzlib
make -j "$(nproc)"
sudo make install

# Register the new library path
echo '/usr/local/openssl/lib' | sudo tee /etc/ld.so.conf.d/openssl.conf
sudo ldconfig

# Export environment variables for the current session
export PATH="/usr/local/openssl/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/openssl/lib:$LD_LIBRARY_PATH"
export PKG_CONFIG_PATH="/usr/local/openssl/lib/pkgconfig:$PKG_CONFIG_PATH"
export CPPFLAGS="-I/usr/local/openssl/include"
export LDFLAGS="-L/usr/local/openssl/lib"

# Verify installation
openssl version

Python 3.12 다운로드, 구성 및 컴파일

cd /tmp/
wget https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz
tar xzf Python-3.12.0.tgz
cd Python-3.12.0

# Configure the Python build.
#   --enable-optimizations : improves performance (optional but recommended)
#   --with-ensurepip=install : bundles pip
./configure --prefix=/usr/local --enable-optimizations --with-ensurepip=install

make -j "$(nproc)"
sudo make altinstall   # installs as python3.12 without overwriting system python

설치 확인

/usr/local/bin/python3.12 --version
/usr/local/bin/pip3.12 --version

가상 환경 생성

/usr/local/bin/python3.12 -m venv venv
source venv/bin/activate

(선택) 편리한 심볼릭 링크 생성

# Symlink for python3.12
sudo ln -s /usr/local/bin/python3.12 /usr/bin/python3.12

# Symlink for pip3.12
sudo ln -s /usr/local/bin/pip3.12 /usr/bin/pip3.12

# Verify the symlinks
python3.12 --version
pip3.12 --version
Back to Blog

관련 글

더 보기 »

RGB LED 사이드퀘스트 💡

markdown !Jennifer Davis https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%...

Mendex: 내가 만드는 이유

소개 안녕하세요 여러분. 오늘은 제가 누구인지, 무엇을 만들고 있는지, 그리고 그 이유를 공유하고 싶습니다. 초기 경력과 번아웃 저는 개발자로서 17년 동안 경력을 시작했습니다.