我在用着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。