Python 소스코드 설치 가이드: 어렵지 않아요! Bash 스크립트로 쉽게 따라하기

3–4분

Python 소스코드 설치 가이드: 직접 설치와 스크립트 분석

Python은 대부분의 최신 운영체제(OS)에서 기본적으로 제공되지만, 특정 OS에서는 Python이 사전 설치되어 있지 않거나, 필요로 하는 특정 버전이 설치되지 않은 경우가 있습니다. 이러한 경우 Python 소스코드를 직접 다운로드하고 컴파일하여 설치하는 방법이 유용합니다. 이번 포스트에서는 Python 3.8.17 소스코드를 사용하여 설치하는 과정을 설명하고, 이를 자동화한 Bash 스크립트를 분석해 보겠습니다.


1. Python 소스코드 설치가 필요한 이유

기본적으로 Python은 대부분의 Linux 배포판(예: Ubuntu, CentOS)에 포함되어 있거나 패키지 관리자를 통해 설치할 수 있습니다. 그러나 다음과 같은 상황에서는 소스코드를 직접 설치하는 방법이 필요할 수 있습니다.

  • 시스템의 패키지 관리자가 제공하지 않는 Python 버전을 설치해야 할 때
  • 서버 환경에서 패키지 관리자 없이 Python을 설치해야 할 때
  • Python 설치를 직접 관리하고 최적화된 설정으로 컴파일하고 싶을 때
  • 특정 운영체제(예: 최소화된 Linux 배포판, 특수 환경)에서 Python이 사전 설치되어 있지 않을 때

2. 설치 준비: 필요한 패키지 설치

Python 소스코드를 컴파일하려면 일부 필수적인 개발 도구와 라이브러리가 필요합니다. 이를 위해 아래와 같은 명령어를 사용해 패키지를 설치합니다.

필요한 패키지 설치 명령어

apt update
apt install -y wget build-essential zlib1g-dev libncurses5-dev libgdbm-dev \\
    libnss3-dev libssl-dev libreadline-dev libffi-dev curl libbz2-dev libsqlite3-d

  • wget: Python 소스코드를 다운로드하는 도구
  • build-essential: C 컴파일러(gcc)를 포함한 개발 도구 세트
  • zlib1g-dev, libncurses5-dev, libssl-dev 등: Python이 의존하는 필수 라이브러리들

3. Python 소스코드 다운로드 및 컴파일

Python 공식 웹사이트에서 원하는 버전의 소스코드를 다운로드하여 컴파일합니다. 아래는 주요 단계입니다.

소스코드 다운로드 및 압축 해제

cd /usr/src
wget <https://www.python.org/ftp/python/3.8.17/Python-3.8.17.tgz>
tar xzf Python-3.8.17.tgz
cd Python-3.8.1

컴파일 및 설치


./configure --enable-optimizations
make -j$(nproc)
make altinsta


  • ./configure --enable-optimizations: 최적화된 Python 실행 파일을 생성하기 위한 설정
  • make -j$(nproc): 컴파일 작업을 CPU 코어 수에 맞게 병렬 처리
  • make altinstall: 기존 Python 버전을 덮어쓰지 않도록 altinstall 옵션 사용

설치 후, 새로 설치된 Python 버전을 확인합니다.

python3.8 --version


4. pip 설치 및 환경 설정

Python 패키지 관리자인 pip는 Python 모듈을 설치하고 관리하는 데 필수적입니다. 설치된 Python 버전에서 다음 명령어를 사용하여 pip를 설치합니다.

python3.8 -m ensurepip --upgrade

ensurepip는 Python 표준 라이브러리의 일부로 포함된 기본 pip 설치 스크립트입니다.


5. Bash 스크립트 분석

아래는 Python 3.8.17을 소스코드로 설치하고 pip까지 설정하는 Bash 스크립트입니다. 각 주요 부분을 자세히 살펴보겠습니다.

스크립트 전체 코드

#!/bin/bash

# 관리자 권한 확인
if [[ $EUID -ne 0 ]]; then
    echo "이 스크립트는 관리자(root) 권한으로 실행해야 합니다."
    exit 1
fi

# 필요한 의존성 설치
echo "필요한 패키지를 설치합니다..."
apt update
apt install -y wget build-essential zlib1g-dev libncurses5-dev libgdbm-dev \\
    libnss3-dev libssl-dev libreadline-dev libffi-dev curl libbz2-dev libsqlite3-dev

# Python 소스 다운로드
PYTHON_VERSION="3.8.17"
echo "Python $PYTHON_VERSION 소스를 다운로드합니다..."
cd /usr/src
wget <https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tgz>

# 소스 코드 압축 해제
echo "다운로드한 소스를 압축 해제합니다..."
tar xzf Python-$PYTHON_VERSION.tgz
cd Python-$PYTHON_VERSION

# Python 컴파일 및 설치
echo "Python $PYTHON_VERSION을 컴파일하고 설치합니다..."
./configure --enable-optimizations
make -j$(nproc)
make altinstall

# 설치 확인
echo "Python $PYTHON_VERSION 설치를 확인합니다..."
python3.8 --version

if [[ $? -eq 0 ]]; then
    echo "Python $PYTHON_VERSION이 성공적으로 설치되었습니다."
else
    echo "Python $PYTHON_VERSION 설치에 실패했습니다."
    exit 1
fi

# pip 설치
python3.8 -m ensurepip --upgrade


주요 부분 분석

  • 관리자 권한 확인
    • 스크립트가 루트 권한으로 실행 중인지 확인합니다.
    • $EUID는 현재 사용자의 UID를 반환하며, 0이면 루트 권한을 의미합니다.
if [[ $EUID -ne 0 ]]; then
    echo "이 스크립트는 관리자(root) 권한으로 실행해야 합니다."
    exit 1
fi


  • 의존성 설치
    • Python 컴파일에 필요한 모든 라이브러리와 도구를 설치합니다.
    • y 옵션으로 사용자의 입력 없이 설치를 진행합니다.
apt update
apt install -y wget build-essential ...

  • Python 소스코드 다운로드
    • $PYTHON_VERSION 변수를 사용해 유연성을 제공하며, 원하는 Python 버전을 쉽게 변경할 수 있습니다.
wget <https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tgz>

  • 소스코드 압축 해제 및 컴파일
    • 컴파일 과정에서 -enable-optimizations로 최적화된 Python 실행 파일을 생성합니다.
./configure --enable-optimizations
make -j$(nproc)
make altinstall

  • 설치 확인 및 pip 설정
    • Python 설치가 성공적으로 완료되었는지 확인한 후, pip를 설치합니다.
python3.8 --version
python3.8 -m ensurepip --upgrade


6. 결론

이번 포스트에서는 Python 소스코드 설치의 필요성과 Bash 스크립트를 사용하여 Python 3.8.17을 설치하는 방법을 자세히 설명했습니다. 위 스크립트를 사용하면 다양한 운영체제에서 Python 설치를 간편하게 자동화할 수 있습니다. 필요에 따라 Python 버전이나 설치 경로를 수정하여 활용할 수 있습니다.

Python 개발 환경을 직접 설정해야 하는 상황이라면 이 스크립트와 가이드를 참고해 보세요! 🚀