pkg 부디렉토리pkg 부디렉토리때때로 pkg 부디렉토리에서 편리하게 사용할 수 있는
몇가지 트릭에 대해 아직 말하지 않은 것들이 있습니다.
MESSAGE
설치 프로그램이 메시지를 표시하도록 하고 싶다면,
메시지를 pkg/MESSAGE에 넣으세요. 이 기능은
pkg_add 뒤에 필요한 부가적인 설치 과정을 표시하거나 라이센스
정보를 표시하는데 종종 유용합니다.
MESSAGE파일을 pkg/PLIST에 추가할 필요는 없다는 점에 주의하세요.
또한 사용자가 패키지가 아니라 포트를 사용하다면 자동적으로
표시되지 않으므로 post-install 타겟에서 표시하도록
해 주어야 할 것입니다.
INSTALL포트가 바이너리를 pkg_add로 설치할 때 어떤 명령을 실행해야
한다면 pkg/INSTALL 스크립트로 그렇게 할 수 있습니다.
이 스크립트는 자동적으로 패키지에 추가되며, pkg_add에 의해
두번 실행됩니다. 한번은 `INSTALL ${PKGNAME} PRE-INSTALL'
이고 두번째는 `INSTALL ${PKGNAME} POST-INSTALL'
입니다. `$2'는 이 스크립트가 어떤 모드로
실행되는지 결정하는 것을 시험하는 데 사용할 수 있습니다.
`PKG_PREFIX' 환경변수는 패키지 설치 디렉토리로
지정됩니다. pkg_add(1) 매뉴얼 페이지에서 더 많은
정보를 찾아보세요.
이 스크립트는 `make install'로 포트를 설치할 땡는
자동적으로 실행되지 않는다는 사실에 주의하세요. 실행해야 한다면,
포트의 Makefile에서 명시적으로 부르도록 해야 할 것입니다.
REQ포트가 설치되어야 하는지 말아야 하는지 결정할 필요가 있다면,
pkg/REQ ``필요 사항'' 스크립트를 만들 수 있습니다.
이것은 설치/삭제 과정이 진행될지를 설치/삭제 과정에서 자동적으로
결정하기 위해 실행될 것입니다.
PLIST 를 make 변수에 따라 다르게 하기p5- 포트와 같은 어떤 포트는 PLIST를 설정한 옵션
(또는 p5- 포트의 경우 perl의 버전) 에 따라 바꾸어야
할 필요가 있습니다. 이 작업을 편하게 하기 위해,
PLIST에 나타나는 %%OSREL%%, %%PERL_VER%%,
%%PERL_VERSION%%는 적절하게 치환될 것입니다.
%%OSREL%%의 값은 운영체제의 버전 번호입니다(예: `2.2.7').
%%PERL_VERSION%%은 perl의 버전 번호이며(예: `5.00502'),
%%PERL_VER%%는 패치수준을 뺀 perl 버전 번호입니다(예: `5.005').
다른 치환을 하고 싶다면, PLIST_SUB 변수를
VAR=VALUE 쌍의 목록으로 지정해 두면 `%%VAR%%'가
모두 PLIST에서 `VALUE'로 바뀔 것입니다.
예를 들면, 버전에 따라 달라지는 부디렉토리에서 많은 파일을
설치하는 포트라면 Makefile에 다음과 같이 지정할 수 있습니다.
OCTAVE_VERSION= 2.0.13
PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}
PLIST에 나타나는 버전 번호는 %%OCTAVE_VERSION%%를
사용하세요. 이 방법은 포트를 업그레이드할 때 PLIST에서
수십행을(어떤 경우에는 수백의) 바꾸지 않아도 되게 합니다.
실제 치환(
매뉴얼 페이지의 경우도
포함하여)은 do-install과 post-install 타겟 사이에서
${PLIST}를 읽어들여서 ${TMPPLIST}
에 쓰는 것으로 이루어집니다(기본값: ${WRKDIR}/.PLIST.mktmp).
따라서 포트가 ${PLIST}를 직접 만들어낸다면,
do-install이나 그 이전에서 만드세요. 또한 포트가 결과로 나온
파일을 편집하고 싶다면, post-install에서 ${TMPPLIST}
라는 파일을 편집하면 됩니다.
pkg 부디렉토리