오토메이크에서 파이썬 스크립트 설치하기...

저는 개발자들이 Membase를 더 쉽게 컴파일하고 설치할 수 있도록 노력해왔는데, 오늘 오토메이크의 마법을 좀 더 배웠습니다. 저는 빌드 시스템 작업에 많은 시간을 소비하고 싶지 않고 코드 작업에 시간을 보내고 싶은 개발자 중 한 명입니다. 동시에 빌드 시스템이 대신 해줄 불필요한 지루한 수작업을 하고 싶지 않습니다.

Membase의 일부는 Python으로 구현되어 있는데, 그 부분을 설치하는 방법을 알아내려고 노력해 왔습니다. "라이브러리" 파일로 /bin 디렉터리를 엉망으로 만들고 싶지 않았기 때문에 Python 비트를 더 잘 패키징할 방법이 필요했습니다. 이전에도 파이썬 경로 변수를 설정하는 래퍼 스크립트를 사용해 본 적은 있지만, 이를 자동 생성 메이크파일에 통합해 본 적은 없었습니다.

항상 그렇듯이 처음에는 구글에 도움을 요청했지만 좋은 예제를 찾지 못해서 결국 오토메이크 매뉴얼을 읽게 되었습니다. 제가 원하는 것을 정확히 수행하는 것이 상당히 쉽다는 것이 밝혀져서 블로그 게시물로 지식을 공유하기로 결정했습니다 :-)

바이너리 경로를 어디에도 하드코딩하고 싶지 않으므로 가장 먼저 해야 할 일은 configure.ac를 업데이트하여 래퍼 스크립트도 생성하는 것입니다:

AC_CONFIG_FILES(메이크파일 파이썬_랩퍼)

파이썬으로 구현한 프로그램이 여러 개 있는데, 많은 래퍼를 만들고 싶지 않아서 제 python_wrapper.in은 다음과 같습니다:

#! /bin/sh
if test -z "${PYTHONPATH}"; then
   PYTHONPATH=@libdir@/python
else
   파이썬 경로=@libdir@/python:${PYTHONPATH}
fi
파이썬 경로 내보내기
실행 @libdir@/python/베이스네임 $0.py "$@"

즉, 이 스크립트를 /opt/membase/bin/stats로 설치하면 동일한 인수를 사용하여 /opt/membase/lib/python/stats.py를 실행하려고 시도합니다. 이제 Makefile.am에 올바른 이름의 스크립트를 생성하는 규칙을 추가해 보겠습니다:

PYTHON_TOOLS=통계
${PYTHON_TOOLS}: python_wrapper
    cp $< $@

built_sources += ${python_tools}
cleanfiles+= ${python_tools}
bin_SCRIPTS+= ${PYTHON_TOOLS}

이제 래퍼 스크립트가 준비되었고 프로그램을 시작하기 위한 모든 스크립트를 생성했습니다. 다음으로 할 일은 파이썬 비트의 대상 디렉터리를 만들고 거기에 모든 비트를 설치하는 것입니다. 그러기 위해서는 디렉터리 이름을 포함하도록 "dir"로 끝나는 변수를 만들어야 합니다. 이름을 "pythonlibdir"로 지정하고 지정된 libdir의 python이라는 하위 디렉터리에 넣겠습니다:

pythonlibdir=$(libdir)/python

마지막으로 이동하려는 모든 파일을 나열해야 합니다:

pythonlib_DATA=
                mc_bin_client.py
                mc_bin_server.py
                memcacheConstants.py
 
pythonlib_SCRIPTS=
                stats.py

마지막에 pythonlib_SCRIPTS를 사용하는 이유는 파일에 실행 비트가 설정되기를 원하기 때문입니다.

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 트론드 노비, 선임 개발자, Couchbase

트론드 노비는 카우치베이스의 소프트웨어 아키텍트입니다. Couchbase 및 Memcached 프로젝트의 핵심 기여자입니다. C/C++ 및 node.js Couchbase 클라이언트 라이브러리를 만들었습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.