728x90
🚀 개요
본 문서는 Python 3.10.14을 소스 컴파일을 통해 설치하면서 겪었던 문제와 해결 방법을 정리한 매뉴얼입니다. 수동 설치 과정에서 발생할 수 있는 오류와 그에 따른 해결 방법을 상세히 기록했습니다.
💡 1. 사전 준비
필수 패키지 설치(외부망이 되는 경우)
# sudo yum groupinstall "Development Tools" -y
# sudo yum install gcc make zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel \
openssl-devel libffi-devel xz-devel tk-devel gdbm-devel db4-devel libpcap-devel expat-devel -y
필수 패키지 설치(외부망이 안 되는 경우)
1. GCC & MAKE 설치
!! GMP 설치
# wget https://ftp.gnu.org/gnu/gmp/gmp-6.3.0.tar.xz
# tar -xf gmp-6.3.0.tar.xz
# cd gmp-6.3.0
# ./configure --prefix=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..
!! MPFR 설치
# wget https://ftp.gnu.org/gnu/mpfr/mpfr-4.2.1.tar.xz
# tar -xf mpfr-4.2.1.tar.xz
# cd mpfr-4.2.1
# ./configure --prefix=/usr/local --with-gmp=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..
!! MPC 설치
# wget https://ftp.gnu.org/gnu/mpc/mpc-1.3.1.tar.gz
# tar -xzf mpc-1.3.1.tar.gz
# cd mpc-1.3.1
# ./configure --prefix=/usr/local --with-gmp=/usr/local --with-mpfr=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..
!! GCC 설치
# wget https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.xz
# tar -xf gcc-13.2.0.tar.xz
# cd gcc-13.2.0
# ./configure --prefix=/usr/local --enable-languages=c,c++
# make -j$(nproc)
# sudo make install
# cd ..
2. zlib 설치
# wget https://zlib.net/zlib-1.3.1.tar.gz
# tar -xzf zlib-1.3.1.tar.gz
# cd zlib-1.3.1
# ./configure --prefix=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..
3. bzip2 설치
# wget https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz
# tar -xzf bzip2-1.0.8.tar.gz
# cd bzip2-1.0.8
# make -f Makefile-libbz2_so
# make clean
# make -j$(nproc)
# sudo make install PREFIX=/usr/local
# cd ..
4. readline 설치
# wget https://ftp.gnu.org/gnu/readline/readline-8.2.tar.gz
# tar -xzf readline-8.2.tar.gz
# cd readline-8.2
# ./configure --prefix=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..
5. SQLite 설치
# wget https://www.sqlite.org/2025/sqlite-autoconf-3480000.tar.gz
# tar -zxvf sqlite-autoconf-3480000.tar.gz
# cd sqlite-autoconf-3440100
# ./configure --prefix=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..
6. OpenSSL 설치
# 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
# make -j$(nproc)
# sudo make install
# cd ..
환경 변수 설정
# export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH
# export PKG_CONFIG_PATH=/usr/local/openssl/lib/pkgconfig
7. libffi 설치
# wget https://github.com/libffi/libffi/releases/download/v3.4.4/libffi-3.4.4.tar.gz
# tar -xzf libffi-3.4.4.tar.gz
# cd libffi-3.4.4
# ./configure --prefix=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..
8. xz 설치
# wget https://tukaani.org/xz/xz-5.4.4.tar.gz
# tar -xzf xz-5.4.4.tar.gz
# cd xz-5.4.4
# ./configure --prefix=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..
# wget https://github.com/libexpat/libexpat/releases/download/R_2_6_1/expat-2.6.1.tar.gz
# tar -xzf expat-2.6.1.tar.gz
# cd expat-2.6.1
# ./configure --prefix=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..
9. tk 설치
# wget https://prdownloads.sourceforge.net/tcl/tk8.6.13-src.tar.gz
# tar -xzf tk8.6.13-src.tar.gz
# cd tk8.6.13/unix
# ./configure --prefix=/usr/local
# make -j$(nproc)
# sudo make install
# cd ../..
10. gdbm 설치
# wget https://ftp.gnu.org/gnu/gdbm/gdbm-1.23.tar.gz
# tar -xzf gdbm-1.23.tar.gz
# cd gdbm-1.23
# ./configure --prefix=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..
11. expat 설치
# wget https://github.com/libexpat/libexpat/releases/download/R_2_6_1/expat-2.6.1.tar.gz
# tar -xzf expat-2.6.1.tar.gz
# cd expat-2.6.1
# ./configure --prefix=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..
🚧 2. Python 소스 컴파일 및 설치
다운로드 및 압축 해제
# wget https://www.python.org/ftp/python/3.10.14/Python-3.10.14.tar.xz
# tar -xf Python-3.10.14.tar.xz
# cd Python-3.10.14
환경 변수 설정
# export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/openssl/lib:$LD_LIBRARY_PATH
# export CPPFLAGS="-I/usr/local/include -I/usr/local/openssl/include"
# export LDFLAGS="-L/usr/local/lib -L/usr/local/openssl/lib"
컴파일 및 설치
# ./configure --prefix=/APP/enhpc/python/v3.10.14 --with-openssl=/usr/local/openssl --enable-optimizations
# make -j$(nproc)
# sudo make altinstall
🌟 3. Troubleshooting
3.1 OpenSSL 관련 오류
오류 메시지
./python: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
해결방법
# sudo ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
# sudo ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
# sudo ldconfig
3.2 encodings 모듈 오류
오류 메시지
ModuleNotFoundError: No module named 'encodings'
해결방법
# export PYTHONHOME=/APP/enhpc/python/v3.10.14
# export PYTHONPATH=/APP/enhpc/python/v3.10.14/lib/python3.10
경로 확인
# /usr/local/python3/bin/python3.10 -c "import sys; print(sys.path)"
파이썬 적용 profile 스크립트(환경변수 적용)
# cat /APP/enhpc/profile.d/python-v3.10.14
------------------------------------------------------------------
#!/bin/bash
export PYTHONHOME=/APP/enhpc/python/v3.10.14
export PYTHONPATH=/APP/enhpc/python/v3.10.14/lib/python3.10
export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH
export PATH=/APP/enhpc/python/v3.10.14/bin:$PATH
3.3 generate-posix-vars 실패
오류 메시지
generate-posix-vars failed
해결방법
# make clean
# ./configure --prefix=/APP/enhpc/python/v3.10.14 --with-openssl=/usr/local/openssl
# make -j$(nproc)
# sudo make altinstall
3.4 Version Err
위의 모든 err log들은 버전에 관련한 에러 로그이다. 일단 현재 버전으로 진행하고 다음에 OS에 맞게 버전을 낮추니 추가로 설치한 rpm 등 파일은 없었다.
새로 설치 시도한 버전은 아래와 같다.
메뉴얼을 참고하여 버전만 다운 그레이드해서 설치한다면 무난히 설치가 될 것이다.
Server OS : CentOS 7.4
Python : 3.8.12
postgreSQL : 13.18
airflow : 2.4.3
📖 4. 설치 확인
# python3.10 --version
# python3.10 -c "import ssl; print(ssl.OPENSSL_VERSION)"
# pip3.10 --list
# vi /APP/enhpc/profile.d/python-v3.10.14
---------------------------------------------------------------
# 내용 추가
export PYTHONHOME=/APP/enhpc/python/v3.10.14
export PYTHONPATH=/APP/enhpc/python/v3.10.14/lib/python3.10
export PATH=/APP/enhpc/python/v3.10.14/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH
-----------------------------------------------------------------
!! 적용
# source /APP/enhpc/profile.d/python-v3.10.14
명령어 link
# ln -sf /APP/enhpc/python/v3.10.14/bin/pip3.10 /APP/enhpc/python/v3.10.14/bin/pip
# ln -sf /APP/enhpc/python/v3.10.14/bin/python3.10 /APP/enhpc/python/v3.10.14/bin/python
'OS > Linux' 카테고리의 다른 글
[Linux] PostgreSQL, Airflow 및 OS 계정 연동 (0) | 2025.02.18 |
---|---|
[Linux] Airflow 2.7.3 & PostgreSQL 13.18 설치 및 설정 매뉴얼 (Python 3.10.14 환경) (0) | 2025.02.17 |
[Linux] watch 명령어 : 실시간 모니터링 (0) | 2025.02.09 |
[Linux] 파일 시스템 오류 복구 : fsck (0) | 2025.01.31 |
[Linux] smartctl 명령어 (0) | 2025.01.26 |