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