从 pbuilder-dist 构建中导出 chrooted 日志

从 pbuilder-dist 构建中导出 chrooted 日志

我在用着pbuilder-dist测试针对特定 Ubuntu 版本和架构的构建。当我构建SiLK 3.10.2对于 14.04 (trusty) 上的 i386,其中一个 make 测试失败:

make[5]: 进入目录 `/tmp/buildd/silk-3.10.2/src/rwconvert'
通过:tests/rwallformats-help.pl
通过:tests/rwallformats-version.pl
通过:tests/rwallformats-lone-command.pl
通过:tests/rwrtd2split-help.pl
通过:tests/rwrtd2split-version.pl
通过:tests/rwrtd2split-lone-command.pl
失败:tests/rwallformats-all.pl
============================================================================
SiLK 3.10.2 测试套件摘要
============================================================================
# 总数:7
#通过:6
# 跳过:0
#XFAIL: 0
# 失败:1
#XPASS:0
# 错误:0
============================================================================
参见 src/rwconvert/test-suite.log
请报告[电子邮件保护]
============================================================================
make[5]: *** [test-suite.log] 错误 1
make[5]:离开目录“/tmp/buildd/silk-3.10.2/src/rwconvert”
make[4]: *** [check-TESTS] 错误 2
make[4]:离开目录“/tmp/buildd/silk-3.10.2/src/rwconvert”
make[3]: *** [check-am] 错误 2
make[3]:离开目录“/tmp/buildd/silk-3.10.2/src/rwconvert”
make[2]: *** [check-recursive] 错误 1
make[2]:离开目录‘/tmp/buildd/silk-3.10.2/src’
make[1]: *** [check-recursive] 错误 1
make[1]:离开目录‘/tmp/buildd/silk-3.10.2’
dh_auto_test:make -j1 检查返回的退出代码 2
make:*** [构建] 错误 2
dpkg-buildpackage:错误:debian/rules build 给出错误退出状态 2
E:包自动构建失败
I:卸载 dev/pts 文件系统
I:卸载 run/shm 文件系统
I:卸载 proc 文件系统
I:清理构建环境
I:删除目录 /var/cache/pbuilder/build//37742 及其子目录

我想获取src/rwconvert/test-suite.log上面输出所引用的日志文件,但是如何从 chrooted 构建环境中提取此文件,或者输出pbuilder-dist此文件?

PS:我的$HOME/pbuilder/trusty-i386_result/目录仅包含控制台输出和一个名为的日志文件last_operation.log。但last_operation.log仅列出清理构建环境的输出(在构建失败后执行)。

答案1

找到了解决这个问题的方法,所以我将回答我自己的问题。

解决方案是使用钩子脚本到 pbuilder。链接的文章对此进行了很好的描述,但为了完整起见,我将在此重做以下步骤:

首先为你的钩子脚本创建一个目录:

sudo mkdir /var/cache/pbuilder/hook.d

然后将此目录添加到 pbuilder 的配置中:

echo HOOKDIR=\"/var/cache/pbuilder/hook.d\" >> ~/.pbuilderrc

创建名为C10shell的钩子脚本,内容如下:

#!/bin/sh
# invoke shell if build fails.

apt-get install -y --force-yes vim less bash
cd /tmp/buildd/*/debian/..
/bin/bash < /dev/tty > /dev/tty 2> /dev/tty

将其保存到您的HOOKDIR,并使其可执行

sudo chmod a+x /var/cache/pbuilder/hook.d/C10shell

现在,如果构建失败,您将在 pbuilder 的 chrooted 环境中看到一个 root shell。

相关内容