pbuilder --build --no-clean-after

2

Eu quero que pbuilder no debian crie um env chrooted, instale dependências de compilação, construa um pacote e então inicie um shell e deixe-me analisar o diretório de compilação.

Por exemplo, se eu correr:

sudo pbuilder --build snacc_1.3.1-5.dsc

há um arquivo:

/var/cache/pbuilder/build/20352/tmp/buildd/snacc-1.3.1/compiler/back-ends/c-gen/util.c

Ele é excluído depois.

mock para rhel tem a opção --no-clean-after . Não é possível encontrar uma opção semelhante em pbuild .

--preserve-buildplace , mas faz outra coisa.

    
por basin 23.11.2015 / 13:24

1 resposta

1

Eu olhei o /usr/lib/pbuilder/pbuilder-buildpackage que faz a parte principal, e parece que não há como evitar a limpeza sem modificar o script em si.

Mas talvez seja útil para você: O gancho "B" é chamado após a construção, conforme declarado em man pbuilder , seção "--hookdir".

B<digit><digit><whatever-else-you-want> is executed after build system finishes building, successfully, before copying back the build result.

Eu uso o seguinte script em minha configuração para um shell neste estágio:

~ / .pbuilderhooks / B10shell:

#!/bin/bash
# invoke shell if build fails.

if [ -n "$PBSHELL" ]; then

apt-get install -y --force-yes nano less bash
cd /tmp/buildd/*/debian/..

echo "pbuilder-$OS-$DIST-$ARCH" >/etc/debian_chroot

cat <<.e

----------------------------------------

OS:   $OS
DIST: $DIST
ARCH: $ARCH

pbuilder-cmd: $PBCURRENTCOMMANDLINEOPERATION

========================================
Entering DEBUG shell:

.e
/bin/bash < /dev/tty > /dev/tty 2> /dev/tty

else
  echo 'I: If you want a shell, set envvar PBSHELL=1' >&2
fi

Para ativar o shell, chame pbuilder assim:

PBSHELL=1 pbuilder --build ...
    
por 18.10.2016 / 17:57