pbuilder --build --no-clean-after

pbuilder --build --no-clean-after

我想pbuilder在 debian 上创建一个 chrooted 环境,安装构建依赖项,构建一个包,然后启动一个 shell,让我分析构建目录。

例如,如果我运行:

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> 在构建系统成功完成构建后执行,然后再复制回构建结果。

在此阶段,我在 shell 配置中使用以下脚本:

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

要激活 shell,请像这样调用 pbuilder:

PBSHELL=1 pbuilder --build ...

相关内容