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 ...

関連情報