CentOS 7에서 Python 3.10 이상 버전 사용하기 전 OpenSSL 1.1.1을 RPM으로 설치하는 방법
PEP644 문서에는 Python 3.10 이상부터 OpenSSL 1.1.1 이상을 요구하고 있습니다.
PEP 644 — Require OpenSSL 1.1.1 or newer
https://peps.python.org/pep-0644/
그러나, 여러 대기업, 관공서등에서 CentOS 7을 아직도 많이 사용을 하고 있고, CentOS 7은 OpenSSL 1.1.1이 아닌 OpenSSL 1.0.2가 설치되어있습니다.
$ openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
CentOS 7에서 Python 3.10을 사용하고 싶은데, OpenSSL 1.1.1이 설치가 되지 않아 소스 컴파일하여 사용해야 하나 이런 고민을 많이 했습니다.
그러나, 일본의 파이썬 개발자가 공유한 글을 보고, CentOS 7에서 OpenSSL 1.1.1을 소스 컴파일이 아닌 RPM설치로도 가능하다는 걸 알게 되었습니다.
아래는 일본 파이썬 개발자가 작성한 글 “Python 3.10の新機能(その8) OpenSSL 1.1.1が必須に”[번역: Python 3.10의 신기능(8번째 부분) OpenSSL 1.1.1이 필수임] 입니다.
여기에서는 CentOS 7에서 OpenSSL1.1.1을 설치하려면 Fedora Project에서 제공하는 EPEL(Extra Packages for Enterprise Linux) 저장소를 추가하여 설치하면 된다고 하더군요.
다음의 명령어로 CentOS 7에서 OpenSSL1.1.1을 설치할 수 있습니다.
yum install epel-release
yum install openssl11 openssl11-devel
OpenSSL1.1.1 설치가 끝나면 아래의 명령어로 확인 가능합니다
$ openssl11 version
OpenSSL 1.1.1k FIPS 25 Mar 2021
pyenv로 설치 시 아래와 같이 환경변수를 지정해야 CentOS 7에서 Python을 설치할 수 있습니다
export CFLAGS=$(pkg-config --cflags openssl11)
export LDFLAGS=$(pkg-config --libs openssl11)
pyenv install 3.10.4
만약, Python을 소스 빌드로 설치하려면 아래와 같이 명령어를 입력하면 됩니다.
yum install epel-release
yum install openssl11 openssl11-devel
export CFLAGS=$(pkg-config --cflags openssl11)
export LDFLAGS=$(pkg-config --libs openssl11)
./configure
make
sudo make install
여담으로, 3월 24일에 예정된 일정 이전에 Python 3.10.4 및 3.9.12 버전이 출시되었다고 글이 공개되었습니다.
Python 3.10.4 and 3.9.12 are now available out of schedule
https://blog.python.org/2022/03/python-3104-and-3912-are-now-available.html
글 내용을 보면, “Red Hat Enterprise Linux 6”에서 Python3.10.3 및 3.9.11 버전이 빌드가 되지 않는 문제 때문이라고 하더군요. RHEL(Red Hat Enterprise Linux) 6은 11년 전에 출시되었고, 이제는 유지보수 지원이 끝났습니다만, 많은 사무 업무분야에서 여전히 많이 사용되고 있다고 합니다. 게다가 자체 manylinux2010 이미지는 CentOS 6을 기반으로 합니다….
아직도 RHEL 6/Cent OS6기반으로 이미지를 사용하는 경우도 많군요
보안 이슈때문에 라이브러리를 새로 바꿔줘야 하는데 Legacy(낡은 것)를 뺄 수가 없으니, 버리는 것이 쉽지 않다는 걸, CentOS 7에서 Python 3.10(지금 기준 — 3.10.4)을 설치하며 알게 되었습니다.
ps.CentOS 7에서 pyenv 로 3.11-dev설치할때도, OpenSSL1.1.1에 대한 환경변수 설정 후에 설치를 해야 정상 설치 됩니다.
export CFLAGS=$(pkg-config --cflags openssl11)
export LDFLAGS=$(pkg-config --libs openssl11)
pyenv install 3.11-dev
참고: PEP(Python Enhancement Proposal)는 “파이썬 언어의 개선된 제안”으로 번역하며, 파이썬 커뮤니티에서 수많은 사람들이 의견을 내고 토론하고 발전하며 논의된 주제를 PEP(Python Enhancement Proposal)로 문서화를 하였습니다
출처: https://wikidocs.net/21733
'컴퓨터 > Linux' 카테고리의 다른 글
gnome-builder에서 gnome SDK, Platform등이 설치 안될때 (0) | 2020.11.04 |
---|---|
오픈수세(openSUSE)에서 Visual Studio Code를 설치 (0) | 2020.09.30 |
한성 TFG7475H구입후, 오픈수세 리눅스(openSUSE Linux)에서 tensorflow-gpu 설정하기 (0) | 2020.09.12 |
오픈수세(openSUSE)에서 한글과컴퓨터에서 공개한 리눅스용 HWP(한글)뷰어 설치하기 (1) | 2020.09.08 |
WSL2에 GNU hello설치 및 실행을 해보자. (0) | 2020.07.30 |