배포판 패키지와 별개로 원하는 버전의 Python 을 소스에서 빌드해 /usr/local 에 설치한다. make install 은 python3 를 덮어쓸 수 있으므로 공식 문서대로 make altinstall 을 써서 python3.14 처럼 버전 붙은 이름만 설치한다.[1]
여러 버전을 자주 오가면 Pyenv 설치 가 편하다.
빌드 도구와 개발 헤더가 필요하다. 공식 개발 가이드의 목록이다.[2]
# RHEL · Rocky · AlmaLinux
sudo dnf install -y gcc gcc-c++ make wget openssl-devel bzip2-devel libffi-devel zlib-devel \
readline-devel sqlite-devel xz-devel libuuid-devel gdbm-libs tk-devel libzstd-devel
# Ubuntu · Debian
sudo apt install -y build-essential wget pkg-config libssl-dev libbz2-dev libffi-dev zlib1g-dev \
libreadline-dev libsqlite3-dev liblzma-dev uuid-dev libgdbm-dev tk-dev libzstd-dev
https://www.python.org/downloads/source/ 에서 받는다.
mkdir -p ~/tmp && cd ~/tmp
wget https://www.python.org/ftp/python/3.14.7/Python-3.14.7.tgz
tar xzf Python-3.14.7.tgz
cd Python-3.14.7
--enable-optimizations 는 PGO 를 켜 빌드 시간이 길어지는 대신 실행이 빨라진다. --enable-shared 는 libpython 공유 라이브러리를 만들어 임베딩(예: mod_wsgi)에 쓴다.
./configure --enable-optimizations --with-lto --enable-shared \
--with-computed-gotos --enable-loadable-sqlite-extensions
make -j "$(nproc)"
sudo make altinstall
--enable-shared 로 빌드했으면 libpython3.14.so 를 링커가 찾도록 등록한다.
echo '/usr/local/lib' | sudo tee /etc/ld.so.conf.d/python3.14.conf
sudo ldconfig
python3.14 --version
python3.14 -m pip --version
python3.14 -m venv ~/venv && source ~/venv/bin/activate
python3 이름으로 쓰고 싶으면 시스템 python3 를 건드리지 말고 alternatives 로 고른다.
sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.14 1
sudo update-alternatives --config python3
위 버전은 오래된 것이라 다운로드 경로가 존재하지 않을 수 있다.
sudo dnf install wget yum-utils make gcc openssl-devel bzip2-devel libffi-devel zlib-devel
# 압축을 해제한 디렉토리에서 수행한다.
sudo ./configure --with-system-ffi --with-computed-gotos --enable-loadable-sqlite-extensions --enable-optimizations --enable-shared
make -j $(nproc)
sudo make altinstall
libpython3.10.so.1.0 이 없다는 에러가 나면 심볼릭 링크를 만든다.
cd /usr/local/lib
sudo ln -s libpython3.10.so libpython3.10.so.1.0
sudo ldconfig
#!/usr/bin/env bash
sudo dnf install wget yum-utils make gcc openssl-devel bzip2-devel libffi-devel zlib-devel
# Ubuntu: sudo apt install -y wget make gcc libssl-dev libbz2-dev libffi-dev zlib1g-dev
mkdir tmp
cd tmp
wget https://www.python.org/ftp/python/3.10.8/Python-3.10.8.tgz
tar xzf Python-3.10.8.tgz
cd Python-3.10.8
sudo ./configure --with-system-ffi --with-computed-gotos --enable-loadable-sqlite-extensions --enable-optimizations --enable-shared
sudo make -j $(nproc)
sudo make altinstall
sudo rm Python-3.10.8.tgz
sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.10 1
sudo update-alternatives --set python3 /usr/local/bin/python3.10
sudo rm -rf /usr/local/bin/pip3
sudo update-alternatives --install /usr/bin/pip3 pip3 /usr/local/bin/pip3.10 1
sudo update-alternatives --set pip3 /usr/local/bin/pip3.10
cd /usr/local/lib
sudo ln -s libpython3.10.so libpython3.10.so.1.0
sudo ldconfig
Using Python on Unix platforms — Building Python. 2026-09-20 확인. https://docs.python.org/3/using/unix.html ↩︎ ↩︎
Python Developer's Guide — Install dependencies. 2026-09-20 확인. https://devguide.python.org/getting-started/setup-building/#install-dependencies ↩︎
최신 버전 3.14.7 — 2026-09-20 확인. https://www.python.org/downloads/ ↩︎