FreeBSD에서 make package-recursive를 호출할 때 PKGREPOSITORY를 재귀적으로 적용하는 방법은 무엇입니까?

FreeBSD에서 make package-recursive를 호출할 때 PKGREPOSITORY를 재귀적으로 적용하는 방법은 무엇입니까?

Apache 및 해당 종속성을 위한 패키지를 만들려고 합니다.

sudo make package-recursive \
__MAKE_CONF=~/make.apache22.conf \
PKGREPSOITORY=/usr/home/gvkv

모든 것이 잘 작동합니다. Apache와 해당 종속성은 컴파일되고 설치 apache22.tbz되며 gvkv문제는 종속성 패키지가 모두 자체 ports/<package>디렉터리에 구축된다는 것입니다. 그 중 약 15개가 있으며 한 줄의 코드로 쉽게 검색할 수 find있지만 perl종속 make패키지가 gvkv.

답변1

FreeBSD를 사용하는 재미 중 하나는 포트 하위 시스템을 사용하는 것입니다. 여러 면에서 좋습니다. FreeBSD 생태계 내에서 설치 및 업그레이드가 쉽지만 다른 면에서는 열악합니다. make구성 파일이나 환경을 통한 변수 설정이 예상대로 작동하지 않거나 광고한 대로 작동하지 않습니다.

그럼에도 불구하고,데스 경깔끔한 작은 트릭으로 구조하러 오세요.

mount -t nullfs /directory/for/pkgs /usr/ports/packages

이는 환경 변수의 사용을 우회하고 대상 디렉터리를 원하는 위치로 설정할 수 있기 때문에 정말 좋습니다. 이는 (나처럼) Build Jail을 사용하여 다른 시스템이나 다른 Jail에 설치되는 패키지를 만드는 경우 매우 유용합니다.

해당 /usr/ports/packages디렉토리는 PACKAGES존재하는 경우 가리키는 곳이고 다른 곳을 가리킬 수 있다고 하는데 나에게는 작동하지 않습니다. 이 페이지 man에 지정된 설정은 PKGREPOSITORY단일 패키지를 빌드하는 경우에만 유효합니다.

답변2

PKGREPOSITORY가 PACKAGES에 의존한다는 것을 읽었습니다.

에서 PACKAGES를 설정할 수 있습니다 /etc/make.conf. 예를 들어:

DISTDIR= /opt/portbuild/distfiles
PACKAGES=/opt/portbuild/packages

관련 정보