RHEL/CentOS 에 python 2.7, 3.* 설치하기
개요
CentOS 6 에는 Python 2.6 이 탑재되어 있으며 많은 시스템 유틸리티(Ex: semange 같은 SELinux 관리 유틸)이 기본 설치된 파이썬과 의존 관계에 있습니다.
python 으로 만들어진 로그 취합 서비스인 Sentry 는 Python 2.7 이상을 요구하며 다음과 같은 설치 방법이 있습니다.
- 소스 tarball 을 다운 받아서 컴파일하여 설치
- rpm 패키지를 구해서 패키지 매니저로 설치
개인적으로는 웬만하면 소스 컴파일을 자제하는 편이지만 python 은 CentOS 에 꼭 필요한 프로그램이며 2번 방식으로 설치할 경우 기본 설치된 python 에 덮어써서 시스템 유틸리티가 제대로 동작하지 않을 위험이 있습니다.
그래서 1번 방식으로 소스를 다운받아서 설치하는 게 낫다고 판단하였고 기존 python 과 중복되지 않게 다음과 같이 설치 했습니다.
설치
https://www.python.org/downloads/ 에서 다운로드
python2wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz
python3wget https://www.python.org/ftp/python/3.4.6/Python-3.4.6.tar.xz
압축 해제
tar xJvf Python-2.7.12.tar.xz
python3tar xJvf Python-3.4.6.tar.xz
폴더로 이동
cd Python-2.7.12
python3cd Python-3.4.6
auto config 수행. 이때 중요한 것은 --prefix 옵션으로 설치될 경로를 지정해 주는 것입니다.
./configure --prefix=/usr/local/python2.7 --enable-shared
python3./configure --prefix=/usr/local/python3.4 --enable-shared
make 로 컴파일하고 test 로 한 번 돌려줍니다.
make test
정상적으로 끝났으면 설치해 주며 /usr/local 에 쓰기 권한이 필요하므로 루트로 수행합니다.
make install
설정
설치가 완료되었으므로 시스템 변수에 등록해 주기 위해 다음 내용을 .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
설정이 끝났으면 현재 쉘에 변경된 설정을 반영합니다.
source ~/.bash_profile
이제 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. >>>
패키지 관리자 설치
외부 패키지를 설치할 때 필요한 setuptools 와 pip 를 설치합니다.
setuptools
다운로드
curl -k -O https://pypi.python.org/packages/source/s/setuptools/setuptools-20.9.0.tar.gz
압축 해제 및 이동
tar zxvf setuptools-20.9.0.tar.gz cd setuptools-20.9.0
설치(root 권한 필요)
python2.7 setup.py install
pip
다운로드
curl -O -k https://pypi.python.org/packages/source/p/pip/pip-8.1.1.tar.gz
압축 해제 및 이동
tar zxvf pip-8.1.1.tar.gz cd pip-8.1.1
설치(root 필요)
python2.7 setup.py install
참고