-
리눅스 - Centos7 Python 3.11.x 설치프로그래밍/Linux 리눅스 2023. 9. 22.반응형
소개
파이썬 3.11 버전은 이전 버전보다 속도 향상이 되었기 때문에 이번에 내 센토스7 서버에 파이썬 3.11버전대를 설치 하려고 한다.
문제는 센토스7버전과 파이썬 3.11버전 호환성이 안맞아서 기존 파이썬 설치하듯이 설치하면 작동을 안한다.
센토스7에는 openssl 1.0 버전대가 깔려있는데 파이썬 3.11버전대를 사용하려면 openssl 버전을 1.1.1로 맞춰야 한다.
인터넷에는 다양한 파이썬 설치 글이 있지만 3.11버전대 설치글은 거의 없고 그마저도 제대로 설명 해주지 않는다.
하지만 다행히 한군데 외국 레퍼런스 설치 문서가 있어서 그걸 보고 했더니 잘 설치가 되었다.
centos7 리눅스에 파이썬 3.11.5 설치하기
1. 시스템 업데이트 (선택)
yum 업데이트는 권장하지만 만약 다른 애플리케이션이 리눅스 상에서 실행 중 이거나 버전 종속성이 깨지면 안되는 경우에는 하면 안된다.
sudo yum -y update
시스템 재시작
sudo systemctl reboot
2. 파이썬 3.11 빌드 도구 설치
Python 3.11은 CentOS 7/RHEL 7 리포지토리의 공식 리포지토리에서 사용할 수 없습니다.
소스 코드에서 설치하지만 빌드 프로세스 전에 설치해야 할 종속성 패키지가 있습니다.
sudo yum -y install epel-release sudo yum install wget make cmake gcc bzip2-devel libffi-devel zlib-devel
sudo yum -y groupinstall "Development Tools"
GCC 버전 확인하기
gcc --version
3. OpenSSL 1.1.1 설치
파이썬 3.11 버전대를 빌드하려면 openssl 1.1.1 이상 버전이 필요함.
centos7에 기본적으로 깔려있는 openssl 버전은 1.0 버전대라서 재설치가 필요함.
$ sudo yum -y install openssl openssl-devel $ openssl version
현재 나의 openssl 버전 확인 하기
sudo yum -y remove openssl openssl-devel
기본적으로 openssl은 여러개를 설치하면 안되고 한개만 설치 해야함.
1.1.1 버전을 설치하기 전에 기존 설치를 제거 해야함.
$ openssl version -bash: openssl: command not found
제거 되었는지 확인.
wget https://www.openssl.org/source/openssl-1.1.1t.tar.gz
원하는 경로에 1.1.1x 버전 설치 위 링크는 1.1.1t 버전을 다운로드 함.
tar xvf openssl-1.1.1t.tar.gz
다운로드한 압축 파일을 품.
cd openssl-1.1.1t/
압축 푼 폴더로 경로 이동
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
openssl을 구성
make -j $(nproc)
openssl을 make 명령어로 빌드
sudo make install
sudo ldconfig
openssl을 설치하고 공유 라이브러리 캐시를 업데이트 함.
sudo tee /etc/profile.d/openssl.sh<<EOF export PATH=/usr/local/openssl/bin:\$PATH export LD_LIBRARY_PATH=/usr/local/openssl/lib:\$LD_LIBRARY_PATH EOF
시스템 전체 openssl 구성을 업데이트 함.
source /etc/profile.d/openssl.sh
셸 환경을 적용
logout
로그아웃이나 exit 명령어를 통해서 현재 세션 종료
$ which openssl /usr/local/openssl/bin/openssl $ openssl version OpenSSL 1.1.1t 7 Feb 2023
다시 로그인 해서 openssl 1.1.1t 버전이 잘 설치 되어 있는지 확인.
4. 파이썬 3.11.x 설치 시작
wget https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tgz
현재 글 작성일 기준으로 가장 최신 버전은 3.11.5 이다.
원하는 경로에 다운로드 받아준다.
tar xvf Python-3.11.4.tgz
압축된 파일 풀고
cd Python-3.11.5/
해당 폴더로 이동
LDFLAGS="${LDFLAGS} -Wl,-rpath=/usr/local/openssl/lib" ./configure --with-openssl=/usr/local/openssl make
빌드 구성을 해준다.
sudo make altinstall
그리고 파이썬 설치 시작
$ python3.11 --version
잘 설치 되었는지 확인.
$ python3.11 >>> import ssl >>> ssl.OPENSSL_VERSION 'OpenSSL 1.1.1t 7 Feb 2023' >>> exit()
OpenSSL 라이브러리가 제대로 작동 하는지 확인.
5. pip3.11 사용하기
$ pip3.11 --version
pip를 이용해서 파이썬 라이브러리 다운 해보자.
pip3.11 install --upgrade pip
pip를 최신 버전으로 업그레이드
pip3.11 sudo pip3.11 install requests
pip3.11 명령어로 먼저 pip 활성화 시키고
파이썬의 유명한 라이브러리인 requests를 설치.
설치가 잘 되면 파이썬 3.11 버전대 설치 완료이다.
6. 심볼릭 링크 설정
python과 pip 명령어 사용시에 버전을 붙여줘야 사용이 가능한데 이걸 간편하게 바꿀 것이다.
$ which python3.11 /usr/local/bin/python3.11
파이썬 설치 경로를 찾아서 해당 경로로 이동한다.
sudo ln -s python3.11 python3
해당 경로에 심볼링 링크를 생성하자
나는 명령어를 python3로 사용할 것 이기 때문에 python3으로 해줬다.
ls -al
심볼릭 링크가 잘 생성된게 보인다.
이제는 명령어를 python3로 진입이 가능하다.
pip 명령어도 같은 방식으로 심볼릭 링크를 설정 해주면 된다.
주의 사항
openssl을 1.1.1로 재설치한 경우 MariaDB가 이미 설치 되어있는 서버의 경우 작동을 안할 수 있다.
그럴 경우 openssl을 1.0버전을 또 설치 하거나 1.1.1 버전으로 환경 맞춰줘야 하는데 나는 임시로 2개를 설치했다.
yum install mariadb-server
이렇게 마리아 디비 서버 설치를 하면 그 안에 openssl 1.0 버전대가 포함되어있다.
systemctl start mariadb
그리고 마리아 디비 서버를 다시 시작하면 정상적으로 작동 한다.
해당 오류 관련 게시글
https://heidong.tistory.com/271
레퍼런스 참고 문서
https://computingforgeeks.com/how-to-install-openssl-1-1-on-centos-rhel-7/?expand_article=1
https://computingforgeeks.com/install-python-3-on-centos-rhel-7/?expand_article=1
반응형'프로그래밍 > Linux 리눅스' 카테고리의 다른 글
리눅스 - 로컬, 다른 서버로 파일 전송 (0) 2024.01.16 Centos - 리눅스 서버 용량 추가하기 (2) 2023.10.08 리눅스 - 폴더,파일 권한 설명 (0) 2022.04.05 리눅스 - route default gateway 설정 (0) 2022.04.04 리눅스 centos7에 jeus8 (제우스8) 설치 (0) 2022.02.09