Estou usando pbuilder-dist
para testar uma compilação em uma versão e arquitetura específicas do Ubuntu. Quando eu construoSilK 3.10.2para i386 em 14.04 (confiável), um dos testes make falhou:
make[5]: Entrando no diretório `/tmp/buildd/silk-3.10.2/src/rwconvert' PASSAR: testes/rwallformats-help.pl PASSAR: testes/rwallformats-version.pl PASSAR: testes/rwallformats-lone-command.pl PASSAR: testes/rwrtd2split-help.pl PASSAR: testes/rwrtd2split-version.pl PASSAR: testes/rwrtd2split-lone-command.pl FALHA: testes/rwallformats-all.pl ================================================= ========================== Resumo do conjunto de testes para SiLK 3.10.2 ================================================= ========================== #TOTAL: 7 # PASSE: 6 # Pular: 0 #XFALHA: 0 # FALHA: 1 # XPASS: 0 # ERRO: 0 ================================================= ========================== Consulte src/rwconvert/test-suite.log Por favor informe[e-mail protegido] ================================================= ========================== make[5]: *** [test-suite.log] Erro 1 make[5]: Saindo do diretório `/tmp/buildd/silk-3.10.2/src/rwconvert' make[4]: *** [check-TESTES] Erro 2 make[4]: Saindo do diretório `/tmp/buildd/silk-3.10.2/src/rwconvert' make[3]: *** [check-am] Erro 2 make[3]: Saindo do diretório `/tmp/buildd/silk-3.10.2/src/rwconvert' make[2]: *** [verificar-recursivo] Erro 1 make[2]: Saindo do diretório `/tmp/buildd/silk-3.10.2/src' make[1]: *** [verificar-recursivo] Erro 1 make[1]: Saindo do diretório `/tmp/buildd/silk-3.10.2' dh_auto_test: make -j1 check retornou o código de saída 2 make: *** [construir] Erro 2 dpkg-buildpackage: erro: compilação debian/rules deu status de saída de erro 2 E: Falha na construção automática do pacote I: desmontando o sistema de arquivos dev/pts I: desmontando o sistema de arquivos run/shm I: desmontando o sistema de arquivos proc I: limpando o ambiente de construção I: removendo o diretório /var/cache/pbuilder/build//37742 e seus subdiretórios
Gostaria de obter o arquivo de log src/rwconvert/test-suite.log
ao qual a saída acima se refere, mas como posso extrair esse arquivo do ambiente de construção chroot ou obter pbuilder-dist
a saída desse arquivo também?
PS: meu $HOME/pbuilder/trusty-i386_result/
diretório contém apenas a saída do console e um arquivo de log chamado last_operation.log
. Mas last_operation.log
lista apenas a saída da limpeza do ambiente de construção (que é executada após a falha da construção).
Responder1
Encontrei uma maneira de resolver isso, então responderei minha própria pergunta.
A solução foi usar umscript de ganchopara o construtor. O artigo vinculado descreve-o bem, mas para ser mais completo, refazerei as etapas aqui:
Primeiro crie um diretório para seus scripts de gancho:
sudo mkdir /var/cache/pbuilder/hook.d
Em seguida, adicione este diretório à configuração do pbuilder:
echo HOOKDIR=\"/var/cache/pbuilder/hook.d\" >> ~/.pbuilderrc
Crie um script de gancho chamado C10shell com o seguinte conteúdo:
#!/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
Salve-o em seu arquivo HOOKDIR
e torne-o executável
sudo chmod a+x /var/cache/pbuilder/hook.d/C10shell
Agora, se a construção falhar, será apresentado a você um shell root dentro do ambiente chroot do pbuilder.