본문 바로가기

KnowHow/Linux

CentOS 에서 scl 을 이용해 python2.7 or python3.x 이용하기


CentOS 버전의 경우 기본적으로 python 2.6 이 깔려 있는데요. 


이것이 요즘 사용되는 대부분의 python 프로그램을 지원하지 않습니다. ( 대표적으로 cert-bot의 경우 python2.7을 이용합니다. ) 또한 만약 패키지 관리자로 python2.7을 강제 설치할 경우 기존 python 을 업그레이드하면서 시스템에서 사용하는 기능들이 잘 동작하지 않는 상황이 발생할 수 있습니다. (  예를들어 yum 이 작동하지 않는다던가... )


이때 에러가 없이 사용할 수 있는 방법이


소스 코드 컴파일을 하는 방법과 scl 을 이용하는 방법이 있는데 여기서는 scl 을 이용하는 방법을 설명드리겠습니다.


방법은 아래의 명령어 순서대로 설치해 주시면 됩니다.


1. scl  설치
$ sudo yum install centos-release-scl

2. yum rhel-server-rhscl-7-rpms 활성화
$ sudo yum-config-manager --enable rhel-server-rhscl-7-rpms

3. python27 설치
$ sudo yum install python27

4. python27 활성화
$ scl enable python27 bash




제대로 설치하셨다면 scl enable python27 bash 후에 python 버전이 다르게 뜨는 것을 확인하실 수 있으실 것입니다.


만약 높은 버전의 python 을 cron 에 등록 해야 한다면 crontab 에 아래와 같이 명령어를 넣어 주시면 됩니다. ( 제 경우 certbot 때문에 )


12 3 * * * scl enable python27 "/usr/bin/certbot-auto renew --renew-hook 'service apachectl restart' >> /var/log/letsencrypt/renew.log"


위의 명령어는 cron 은  python27 과 함께 --renew-hook 으로 인증서 갱신과 함께 아파치를 재시작 하는 cron 입니다.


즐거운 개발 되시기 바랍니다.