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