pbuilder-dist ビルドから chroot されたログをエクスポートする

pbuilder-dist ビルドから chroot されたログをエクスポートする

pbuilder-dist特定のUbuntuリリースとアーキテクチャに対してビルドをテストするために使用しています。ビルドするとシルク3.10.214.04 (trusty) 上の i386 の場合、make テストの 1 つが失敗します。

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 check が終了コード 2 を返しました
make: *** [ビルド] エラー 2
dpkg-buildpackage: エラー: debian/rules ビルドでエラー終了ステータス 2 が発生しました
E: パッケージの自動ビルドに失敗しました
I: dev/pts ファイルシステムのアンマウント
I: run/shm ファイルシステムのアンマウント
I: proc ファイルシステムのアンマウント
I: ビルド環境のクリーンアップ
I: ディレクトリ /var/cache/pbuilder/build//37742 とそのサブディレクトリを削除します

上記の出力が参照するログ ファイルを取得したいのですsrc/rwconvert/test-suite.logが、chroot されたビルド環境からこのファイルを抽出するにはどうすればよいでしょうか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 の chroot 環境内にルート シェルが表示されます。

関連情報