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

글 내용을 보면, “Red Hat Enterprise Linux 6”에서 Python3.10.3 및 3.9.11 버전이 빌드가 되지 않는 문제때문이라고 하더군요. RHEL(Red Hat Enterprise Linux) 6은 11년전에 출시되었고, 이제는 유지보수지원이 끝났습니다만, 많은 사무 업무분야에서 여전히 많이 사용되고 있다고 합니다. 게다가 자체 manylinux2010 이미지는 CentOS 6을 기반으로 합니다….

아직도 RHEL6/Cent OS6기반으로 이미지를 사용하는 경우도 많군요

보안 이슈때문에 라이브러리를 새로 바꿔줘야 하는데 Legacy(낡은 것)를 뺄수가 없으니, 버리는 것이 쉽지 않다는걸, CentOS 7에서 Python 3.10(지금 기준 — 3.10.4)을 설치하며 알게 되었습니다.

참고: PEP(Python Enhancement Proposal)는 “파이썬 언어의 개선된 제안”으로 번역하며, 파이썬 커뮤니티에서 수많은 사람들이 의견을 내고 토론하고 발전하며 논의된 주제를 PEP(Python Enhancement Proposal)로 문서화를 하였습니다

출처: https://wikidocs.net/21733

--

--

DaeHyun Sung(성대현,成大鉉,ソン・デヒョン)

LibreOffice Korean Team,GNU,KDE Contributor,GNOME Foundation Member, My native language is Korean(한국어) My hobby is Learning Language(English,中國語(繁體中文,简体中文),日本語)