개요

CentOS 6 에는 Python 2.6 이 탑재되어 있으며 많은 시스템 유틸리티(Ex: semange 같은 SELinux 관리 유틸)이 기본 설치된 파이썬과 의존 관계에 있습니다.

 

python 으로 만들어진 로그 취합 서비스인 Sentry 는 Python 2.7 이상을 요구하며 다음과 같은 설치 방법이 있습니다.

 

  1. 소스 tarball 을 다운 받아서 컴파일하여 설치
  2. rpm 패키지를 구해서 패키지 매니저로 설치

 

개인적으로는 웬만하면 소스 컴파일을 자제하는 편이지만 python 은 CentOS 에 꼭 필요한 프로그램이며 2번 방식으로 설치할 경우 기본 설치된 python 에 덮어써서 시스템 유틸리티가 제대로 동작하지 않을 위험이 있습니다.

 

그래서 1번 방식으로 소스를 다운받아서 설치하는 게 낫다고 판단하였고 기존 python 과 중복되지 않게 다음과 같이 설치 했습니다.

 

설치

  1. https://www.python.org/downloads/  에서 다운로드

    python2

    wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz
    CODE

    python3

    wget https://www.python.org/ftp/python/3.4.6/Python-3.4.6.tar.xz
    BASH
  2. 압축 해제

    tar xJvf Python-2.7.12.tar.xz
    CODE

    python3

    tar xJvf Python-3.4.6.tar.xz
    CODE
  3. 폴더로 이동

    cd Python-2.7.12
    CODE

    python3

    cd Python-3.4.6
    CODE
  4. auto config 수행. 이때 중요한 것은 --prefix 옵션으로 설치될 경로를 지정해 주는 것입니다.

    ./configure --prefix=/usr/local/python2.7 --enable-shared
    CODE

    python3

    ./configure --prefix=/usr/local/python3.4 --enable-shared
    CODE
  5. make 로 컴파일하고 test 로 한 번 돌려줍니다.

    make test
    CODE
  6. 정상적으로 끝났으면 설치해 주며 /usr/local 에 쓰기 권한이 필요하므로 루트로 수행합니다.

    make install
    CODE

설정

설치가 완료되었으므로 시스템 변수에 등록해 주기 위해 다음 내용을 .bash_profile 에 추가합니다.

PY27=/usr/local/python2.7/
export PATH=$PATH:${PY27}/bin
export LD_LIBRARY_PATH=${PY27}/lib:$LD_LIBRARY_PATH
 
## Python 3
PY34=/usr/local/python3.4/
export PATH=$PATH:${PY34}/bin
export LD_LIBRARY_PATH=${PY34}/lib:$LD_LIBRARY_PATH
BASH

 

 설정이 끝났으면 현재 쉘에 변경된 설정을 반영합니다.

source ~/.bash_profile
CODE

 

이제 python2.7 명령어를 실행하면 새로 설치한 python 을 사용할 수 있습니다.

$  python2.7

Python 2.7.11 (default, Apr 22 2016, 12:37:55) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
CODE

 

패키지 관리자 설치

외부 패키지를 설치할 때 필요한 setuptools 와 pip 를 설치합니다.

setuptools

  1. 다운로드 

    curl -k -O https://pypi.python.org/packages/source/s/setuptools/setuptools-20.9.0.tar.gz
    CODE
  2. 압축 해제 및 이동

    tar zxvf setuptools-20.9.0.tar.gz
    cd setuptools-20.9.0
    CODE
  3. 설치(root 권한 필요)

    python2.7 setup.py install
    CODE

pip

  1. 다운로드

    curl -O -k https://pypi.python.org/packages/source/p/pip/pip-8.1.1.tar.gz
    CODE
  2. 압축 해제 및 이동

    tar zxvf pip-8.1.1.tar.gz
    cd pip-8.1.1
    CODE
  3. 설치(root 필요)

    python2.7 setup.py install
    CODE

참고