Ubuntu에서 Python 3.7.4 직접 빌드하기: apt 말고 공식 tarball로 설치하는 법

apt 기본 저장소에서 원하는 Python 마이너 버전을 찾지 못한 경험이 있으신가요? 특정 버전이 필요할 때는 Python 공식 사이트의 소스 tarball을 wget으로 내려받아 직접 빌드하는 방법이 있습니다. 2021년 1월 Ubuntu 서버에서 Python 3.7.4를 소스 빌드로 설치하면서 기록한 절차를 바탕으로, 사전 라이브러리 설치부터 최종 버전 확인까지 전체 흐름을 단계별로 정리했습니다.


1단계 — 사전 라이브러리 설치

Python 소스를 빌드하려면 컴파일 환경과 각종 개발 헤더·라이브러리가 미리 설치되어 있어야 합니다. 이 과정을 건너뛰면 이후 ./configure 또는 make 단계에서 오류가 발생할 수 있습니다.

Ubuntu(또는 Putty 등 원격 터미널 환경)에서 터미널을 열고 아래 명령을 순서대로 입력합니다. 설치 도중 [ y | n ] 선택 프롬프트가 나타나면 y를 입력하고 엔터를 누르면 됩니다.

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus

sudo apt-get install libncursesw5-dev libgdbm-dev libc6-dev

sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev

sudo apt-get install libssl-dev openssl

sudo apt-get install libffi-dev

update·upgrade·dist-upgrade 세 단계로 패키지 목록과 시스템을 최신 상태로 갱신한 뒤, build-essential(C 컴파일러·링커 포함)과 함께 데이터베이스(libsqlite3-dev), 암호화(libssl-dev·openssl·libffi-dev), 터미널 UI(libncursesw5-dev·tk-dev) 등 Python 빌드에 필요한 라이브러리를 그룹별로 설치합니다. 각 명령 실행 중 진행 프롬프트가 나오면 y로 응답하면서 진행합니다.


2단계 — Python 공식 사이트에서 소스 다운로드

Python 3.7.4의 공식 소스 tarball URL은 아래와 같습니다. 서버 터미널에서 wget 명령을 바로 실행하면 됩니다.

wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
Ubuntu 터미널에서 wget 명령으로 Python-3.7.4.tgz 파일 다운로드가 완료된 화면

위와 같이 터미널에 완료 메시지가 표시되면 다운로드가 끝난 것입니다.

다른 버전의 URL을 직접 확인하고 싶다면

Python 3.7.4 외 다른 마이너 버전의 tarball URL을 찾고 싶다면 Python 공식 릴리스 페이지에서 직접 확인할 수 있습니다.

https://www.python.org/downloads/release/python-374/

Python 공식 사이트 다운로드 페이지에서 Python 3.7.4 릴리스 항목으로 이동하는 화면

페이지에 접속하면 릴리스 목록이 나타납니다. Python 3.7.4 항목을 클릭해 릴리스 상세 페이지로 이동합니다.

Python 3.7.4 릴리스 상세 페이지에서 파일 목록 중 Gzipped source tarball 다운로드 링크가 표시된 화면

상세 페이지를 아래로 스크롤하면 여러 형태의 파일 목록이 나타납니다. Linux/Unix 환경에서 소스 빌드에 사용하는 것은 Gzipped source tarball입니다. 해당 항목 위에 마우스를 올리면 파일 다운로드 URL을 확인할 수 있습니다.


3단계 — 압축 해제·빌드·설치

tgz 파일 확인

먼저 ls 명령으로 다운로드된 파일이 현재 디렉터리에 있는지 확인합니다.

ls
ls 명령으로 Python-3.7.4.tgz 파일이 현재 디렉터리에 존재함을 확인하는 터미널 화면

압축 해제

tgz 파일이 확인되면 아래 명령으로 압축을 해제합니다.

tar xvfz Python-3.7.4.tgz

압축이 해제되는 동안 파일 목록이 터미널에 출력됩니다. 완료되면 다시 ls 명령으로 Python-3.7.4 디렉터리가 생성되었는지 확인합니다.

ls
tar 압축 해제 후 ls 명령으로 Python-3.7.4 디렉터리가 생성된 것을 확인하는 터미널 화면

디렉터리 이동 및 configure 확인

Python-3.7.4 디렉터리가 확인된다면 해당 디렉터리로 이동합니다.

cd Python-3.7.4

이동 후 ls 명령으로 configure 파일이 있는지 확인합니다. configure는 빌드 전에 현재 시스템 환경을 점검하는 스크립트로, 이 파일이 있어야 다음 단계를 진행할 수 있습니다.

ls
Python-3.7.4 디렉터리 내에서 ls 명령으로 configure 파일이 포함된 파일 목록을 확인하는 터미널 화면

빌드 및 설치

configure 파일이 확인되면 아래 세 명령을 순서대로 실행합니다.

make 단계는 소스 코드를 컴파일하는 과정으로, 서버 성능에 따라 5~20분 이상 소요될 수 있습니다. 터미널에 컴파일 로그가 계속 출력되면 정상 진행 중이므로 완료될 때까지 기다립니다. 설치 도중 [ y | n ] 프롬프트가 나오면 y를 입력합니다.

./configure
make
sudo make install

4단계 — 버전 확인

리눅스에는 기본적으로 Python 2.x가 설치되어 있어, python -V를 실행하면 2.x 버전이 출력됩니다. 새로 설치한 Python 3.7.4를 확인하려면 반드시 python3 -V 를 사용합니다.

python3 -V
Ubuntu 터미널에서 python3 -V 명령으로 새로 설치한 Python 3.7.4 버전이 출력된 화면

위와 같이 출력된다면 설치가 완료된 것입니다.


운영 팁

2021년 기록 이후 환경 변화와 실제 운영에서 알아두면 좋을 점을 짚어드립니다. 아래 내용은 원본 절차 외 보충 참고 사항이므로, 환경에 따라 적용 여부를 판단하시기 바랍니다.

Python 2 계열 패키지에 대해: 1단계 설치 명령 중 python-dev, python-setuptools, python-pip, python-smbus는 Python 2 계열 패키지명입니다. Ubuntu 22.04 이상에서는 해당 패키지들이 저장소에서 제거되었으므로, 사용 중인 Ubuntu 버전에 따라 패키지 목록 조정이 필요합니다.

sudo make install에 대해: 이 명령은 일반적으로 /usr/local/bin/python3.7 형태로 시스템 전역에 Python을 설치합니다. 다중 버전을 함께 운용하는 환경이라면 OS 시스템 파이썬과 충돌 가능성이 있으므로, 별도 버전 관리 도구(예: pyenv) 활용을 검토하시는 편이 안전할 수 있습니다. 단, 본 절차 코드 블록의 명령은 원문 그대로이며, 도구 간 우열은 환경에 따라 달라집니다.

다른 마이너 버전을 설치하고 싶다면: 이 절차는 다른 마이너 버전에도 동일하게 적용할 수 있습니다. wget URL과 tar·cd 명령에 포함된 3.7.4 부분을 원하는 버전으로 교체하면 됩니다. 실제 릴리스 여부와 필요한 의존 라이브러리는 별도로 확인하시기 바랍니다.


마무리

소스 빌드 절차 자체는 Python 마이너 버전이 바뀌어도 이 흐름이 그대로 적용됩니다. apt 저장소에서 원하는 버전을 바로 찾기 어려울 때 참고하시기 바랍니다.


참고 출처

  • [[Python] Ubuntu에 Python 3.7 설치하기! — somjang.tistory.com](https://somjang.tistory.com/entry/PythonUbuntu에-Python-37-설치하기)

Similar Posts