내 목표는 amd64 FreeBSD 호스트에서 armv6 RaspberryPi FreeBSD 대상으로 바이너리를 크로스 컴파일하는 것입니다.
make install
내가 겪고 있는 문제는 명령을 실행 하려면 루트여야 한다는 것입니다 make PREFIX=/home/arm/install_dir NO_PKG_REGISTER=1 install
. 더 나은 방법 make package
은 대상으로 더 쉽게 전송하기 위해 사용하는 것입니다.
문제는 비록 내가예시스템의 단독 관리자이자하다make install
루트 기능을 사용하면 실수 (예: PREFIX=
또는 생략 )로 인해 NO_PKG_REGISTER=1
호스트 시스템이 손상 되지 않도록 하고 싶습니다 .
arm
예방 조치로 호스트 컴퓨터에 arm 바이너리를 실수로 설치하는 것을 방지하기 위해 모든 빌드를 별도의 사용자로 수행합니다 . 또한 사용자는 및 와 /usr/src
별도로 FreeBSD 소스 코드 및 포트 트리의 자신만의 복사본을 갖게 됩니다 /usr/ports
.
make
루트 액세스 없이 패키지를 만드는 방법이 있습니까 ?
아니면 내 호스트 PREFIX
가 부적절한 바이너리로 오염되는 것을 방지할 수 있습니까 ?NO_PKG_REGISTER
make package
편집 : 따르면http://forums.freebsd.org/showpost.php?p=1518&postcount=7, PREFIX 방법은 좋지 않습니다 ... 흠. 내 말은, 데스티르?
답변1
포트 크로스 컴파일은 지원되는 구성이 아닙니다. 권한이 없는 사용자로 패키지를 빌드하는 경우에도 마찬가지입니다.
작동할 수도 있지만 때로는 작동하지 않을 때도 있습니다.
chroot를 설정하면 실수로 호스트 시스템에 ARM 바이너리를 설치하는 것을 방지할 수 있으므로 좋은 생각이라고 생각합니다. 감옥은 이용 가능하지만 필수는 아닙니다.