sbuild e pbuilder se desenvolveram ao longo dos anos para ter uma funcionalidade quase idêntica e, à medida que os recursos são adicionados a ambos, eles tendem a ser rapidamente adotados pelo outro.
Como o empacotamento Debian é um formato orientado por políticas, é um auxílio significativo para determinar se um determinado problema de compilação é um bug na implementação do construtor ou um problema com o pacote sendo construído para ter múltiplas implementações de um sistema de compilação. . Para manter isso, os sistemas líderes de construção devem ter todos os partidários strongs apoiando-os, em um espírito de competição colaborativa para garantir que tenhamos as implementações de políticas mais corretas disponíveis.
A mecânica interna de sbuild e pbuilder difere consideravelmente, então, precisamente quais pacotes são puxados para satisfazer dependências de compilação ou como eles são puxados, o mecanismo preciso pelo qual os vários destinos em debian / rules são chamados, etc. podem diferir, causando algumas pequenas diferenças no comportamento em casos muito específicos para certos pacotes. Na maioria das vezes, isso representa um bug em uma ou outra implementação e, às vezes, reflete uma falta de clareza na política de empacotamento: em qualquer caso, mudanças de comportamento devem ser resolvidas.
Builds oficiais tanto no Debian quanto no Ubuntu usam o sbuild (embora muitas vezes não seja o sbuild disponível nos repositórios), o que é considerado uma vantagem por alguns desenvolvedores, pois eles confiam que sua configuração corresponde àquela à qual o pacote será exposto quando construído, embora se todos fizerem isso, perderemos a capacidade de distinguir bugs na política de bugs no sbuild.
Historicamente, meu entendimento é que o desenvolvimento do pbuilder inicialmente focava nas necessidades do desenvolvedor como desenvolvimento de usuário final e sbuild inicialmente focado nas necessidades dos administradores de buildd e arquivamento. Recentemente, esses focos mudaram, já que as pessoas construíram sistemas de gerenciamento de arquivos baseados no pbuilder e mais ferramentas de desenvolvedor úteis usando o sbuild.
Ambas as ferramentas (ou suas derivadas de fechamento comumente disponíveis) suportam o armazenamento de chroots como tarballs, descompactado no sistema, em volumes separados (com ganchos disponíveis para montagem especial: ex. instantâneos LVM), usando sistemas de arquivos de sobreposição, usando copy-on-write Semântica, etc. Ambas as ferramentas oferecem ferramentas de linha de comando triviais para simplificar o caso comum (test-build um pacote) e uma rica semântica de gancho para suportar casos complexos (grandes arquivos). Ambos fornecem um meio para criar um ambiente de teste em um chroot. Em suma, ambas as ferramentas fornecem praticamente tudo o que você poderia pensar que você queria em uma ferramenta de construção de pacotes (e ambas têm upstreams ativos felizes em aceitar bugs e patches).
Em resumo: se você está feliz com o pbuilder, continue usando-o. Se você quiser jogar com sbuild, fique à vontade. A melhor ferramenta é aquela que você se sente confortável para o tipo de trabalho que faz.