Я использую pbuilder-dist
для тестирования сборки на основе определенного релиза Ubuntu и архитектуры. Когда я собираюСилк 3.10.2для i386 на 14.04 (надежный) один из тестов 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 Пожалуйста, сообщите[email protected] ============================================================================ 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]: *** [проверка-рекурсивная] Ошибка 1 make[2]: Выход из каталога `/tmp/buildd/silk-3.10.2/src' make[1]: *** [проверка-рекурсивная] Ошибка 1 make[1]: Выход из каталога `/tmp/buildd/silk-3.10.2' dh_auto_test: make -j1 check вернул код выхода 2 сделать: *** [сборка] Ошибка 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
на который ссылается вывод выше, но как мне извлечь этот файл из среды сборки 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
Теперь, если сборка завершится неудачно, вам будет предоставлена оболочка root в chroot-среде pbuilder.