Exportieren von Chroot-Protokollen aus einem pbuilder-dist-Build

Exportieren von Chroot-Protokollen aus einem pbuilder-dist-Build

Ich verwende es, pbuilder-distum einen Build gegen eine bestimmte Ubuntu-Version und -Architektur zu testen. Wenn ichSiLK 3.10.2für i386 unter 14.04 (trusty) schlägt einer der Make-Tests fehl:

make[5]: Wechsele in das Verzeichnis `/tmp/buildd/silk-3.10.2/src/rwconvert'
BESTANDEN: tests/rwallformats-help.pl
PASS: tests/rwallformats-version.pl
BESTANDEN: tests/rwallformats-lone-command.pl
PASS: tests/rwrtd2split-help.pl
PASS: tests/rwrtd2split-version.pl
BESTANDEN: tests/rwrtd2split-lone-command.pl
FEHLGESCHLAGEN: tests/rwallformats-all.pl
============================================================================
Testsuite-Zusammenfassung für SiLK 3.10.2
============================================================================
# GESAMT: 7
# PASS: 6
# ÜBERSPRINGEN: 0
# XFAIL: 0
# FEHLER: 1
# XPASS: 0
# FEHLER: 0
============================================================================
Siehe src/rwconvert/test-suite.log
Bitte melden Sie sich bei[email geschützt]
============================================================================
make[5]: *** [test-suite.log] Fehler 1
make[5]: Verlasse das Verzeichnis `/tmp/buildd/silk-3.10.2/src/rwconvert'
make[4]: *** [check-TESTS] Fehler 2
make[4]: Verlasse das Verzeichnis `/tmp/buildd/silk-3.10.2/src/rwconvert'
make[3]: *** [check-am] Fehler 2
make[3]: Verlasse das Verzeichnis `/tmp/buildd/silk-3.10.2/src/rwconvert'
make[2]: *** [check-recursive] Fehler 1
make[2]: Verlasse das Verzeichnis `/tmp/buildd/silk-3.10.2/src'
make[1]: *** [check-recursive] Fehler 1
make[1]: Verlasse das Verzeichnis `/tmp/buildd/silk-3.10.2'
dh_auto_test: make -j1 check hat Exitcode 2 zurückgegeben.
make: *** [build] Fehler 2
dpkg-buildpackage: Fehler: debian/rules build ergab Fehler-Exit-Status 2
E: Automatischer Paketaufbau fehlgeschlagen
I: dev/pts-Dateisystem aushängen
I: Unmounten des run/shm-Dateisystems
I: Aushängen des Proc-Dateisystems
I: Bereinigen der Build-Umgebung
I: Löschen des Verzeichnisses /var/cache/pbuilder/build//37742 und seiner Unterverzeichnisse

Ich möchte die Protokolldatei erhalten, src/rwconvert/test-suite.logauf die sich die obige Ausgabe bezieht, aber wie kann ich diese Datei aus der Chroot-Build-Umgebung extrahieren oder pbuilder-distdiese Datei auch ausgeben lassen?

PS: Mein $HOME/pbuilder/trusty-i386_result/Verzeichnis enthält nur die Konsolenausgabe und eine Protokolldatei namens last_operation.log. last_operation.logListet aber nur die Ausgabe der Bereinigung der Build-Umgebung auf (die ausgeführt wird, nachdem der Build fehlgeschlagen ist).

Antwort1

Ich habe eine Möglichkeit gefunden, das Problem zu lösen, daher beantworte ich meine Frage selbst.

Die Lösung bestand in der Verwendung einesHook-Skriptzu pbuilder. Der verlinkte Artikel beschreibt es gut, aber der Vollständigkeit halber werde ich die Schritte hier noch einmal wiederholen:

Erstellen Sie zunächst ein Verzeichnis für Ihre Hook-Skripte:

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

Fügen Sie dann dieses Verzeichnis zur pbuilder-Konfiguration hinzu:

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

Erstellen Sie ein Hook-Skript namens C10shell mit folgendem Inhalt:

#!/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

Speichern Sie es in Ihrem HOOKDIRund machen Sie es ausführbar

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

Wenn der Build jetzt fehlschlägt, wird Ihnen eine Root-Shell innerhalb der Chroot-Umgebung von pbuilder angezeigt.

verwandte Informationen