Debian에서 루트 환경을 만들고 pbuilder
, 빌드 종속성을 설치하고, 패키지를 빌드한 다음, 빌드 디렉터리를 분석할 수 있는 셸을 시작하고 싶습니다.
예를 들어, 다음을 실행하면:
sudo pbuilder --build snacc_1.3.1-5.dsc
파일이 있습니다:
/var/cache/pbuilder/build/20352/tmp/buildd/snacc-1.3.1/compiler/back-ends/c-gen/util.c
이후 삭제되었습니다.
mock
rhel
이 옵션이 있기 때문입니다 --no-clean-after
. 에서 유사한 옵션을 찾을 수 없습니다 pbuild
.
예 --preserve-buildplace
, 하지만 다른 일도 합니다.
답변1
메인 섹션을 살펴보니 /usr/lib/pbuilder/pbuilder-buildpackage
스크립트 자체를 수정하지 않고서는 정리를 피할 수 있는 방법이 없는 것 같습니다.
man pbuilder
하지만 도움이 될 수도 있습니다. "--hookdir" 섹션에 설명된 대로 빌드한 후 후크 "B"를 호출하세요.
B<digit><digit><whatever-else-you-want>는 빌드 시스템이 빌드를 성공적으로 완료한 후 빌드 결과를 다시 복사하기 전에 실행됩니다.
이 단계에서는 쉘 구성에서 다음 스크립트를 사용하고 있습니다.
~/.pbuilderhooks/B10shell:
#!/bin/bash
# invoke shell if build fails.
if [ -n "$PBSHELL" ]; then
apt-get install -y --force-yes nano less bash
cd /tmp/buildd/*/debian/..
echo "pbuilder-$OS-$DIST-$ARCH" >/etc/debian_chroot
cat <<.e
----------------------------------------
OS: $OS
DIST: $DIST
ARCH: $ARCH
pbuilder-cmd: $PBCURRENTCOMMANDLINEOPERATION
========================================
Entering DEBUG shell:
.e
/bin/bash < /dev/tty > /dev/tty 2> /dev/tty
else
echo 'I: If you want a shell, set envvar PBSHELL=1' >&2
fi
쉘을 활성화하려면 다음과 같이 pbuilder를 호출하십시오.
PBSHELL=1 pbuilder --build ...