Ich verwende es, pbuilder-dist
um 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.log
auf die sich die obige Ausgabe bezieht, aber wie kann ich diese Datei aus der Chroot-Build-Umgebung extrahieren oder pbuilder-dist
diese 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.log
Listet 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 HOOKDIR
und 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.