pbuilder --build --no-clean-after

pbuilder --build --no-clean-after

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

이후 삭제되었습니다.

mockrhel이 옵션이 있기 때문입니다 --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 ...

관련 정보