이 Post 에서는 Python 2.7.2 (UNIX) + Fabric 1.3.2 기준으로 설명된다.
- Download 할 파일들
1) Python 인터프리터 프로그램
http://www.python.org/download/ 위치에서 자신에게 필요한 버젼을 download 한다. 이 Post 에서는 Python-2.7.2.tar.bz2 를 다운로드 하였다.
2) setuptools - Python 모듈
setuptools 는 Python 모듈을 쉽게 설치/제거 할 수 있는 admin utility 이다. http://pypi.python.org/pypi/setuptools/0.6c11#downloads 에서 egg 파일을 다운로드 받는다.
3) SSH - Python 모듈
SSH 모듈을 여기에서 다운로드 받는다.
4) PyCrypto - Python 모듈
SSH 암호화 모듈을 여기에서 다운로드 받는다.
5) Fabric 1.3.2 - Python 모듈
Fabric 모듈을 여기에서 다운로드 받는다.
※ Fabric 이 제공하는 Multiprocessing 기능을 이용하려면, 따로 multiprocessing 모듈을 추가 설치하거나, Python 을 2.6 버젼 이상을 갖고 있어야 한다.
- Installation
1) Python 프로그램
#> bunzip2 Python-2.7.2.tar.bz2
#> tar -xvf Python-2.7.2.tar
#> ./configure
#> make
#> make install
2) setuptools 0.6c11
#> sh setuptools-0.6c11-py2.7.egg
3) PyCrypto
#> gzip -d pycrypto-2.4.1.tar.gz
#> tar -xvf pycrypto-2.4.1.tar
#> python setup.py install
4) SSH 모듈
#> gzip -d ssh-1.7.9.tar.gz
#> tar -xvf ssh-1.7.9.tar
#> python setup.py install
5) Fabric
#> gzip -d fabric-1.3.2.tar.gz
#> tar -xvf fabric-1.3.2.tar
#> python setup.py install
- Verification
아래 내용을 참고하여 Fabric 이 잘 설치되었는지 확인한다.
1) 텍스트 에디터로 밑에 소스 코드를 입력하고 fabfile.py 로 저장한다.
def hello():
print("Hello World!")
2) Shell 상에서 아래와 같이 입력하였을 때, print() 에 넣은 Hello World! 가 정상 출력되면 OK
- 추가 Library dependency
/usr/local/lib/python2.7/site-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.
libgmp 는 시스템에 설치되어 있는 라이브러리 인데, libgmp.so 파일의 버젼이 fab 가 요구하는 수준보다 낮아서 그런 것 같다. 그래서 libgmp 를 에러 로그에서 보았던 데로 5 이상 버젼을 설치한 후 Python 을 다시 compile 하여 재설치 하였다. 테스트하는 system 이 redhat 이 설치되어 있는데, 구성한지 오래되어 그럴 수도 있다.