Não existe uma solução de comando único para fazer isso, mas as ferramentas definitivamente existem para torná-lo relativamente indolor:
-
debootstrap
pode criar uma instalação minimalista e intocada do Ubuntu em um diretório independente -
schroot
permite gerenciar vários chroots, mantendo-os limpos para uso posterior -
mk-schroot
pode ser usado para automatizar a configuração e o gerenciamento do schroot - Dado um arquivo .dsc (gerado com
debuild -S
),sbuild
irá chroot no seu chroot original, instalará todos os pacotes dependentes e construirá suas fontes.
isso é basicamente o que os servidores de construção da barra de ativação usam para criar pacotes de código-fonte e colocá-los no repositório do Ubuntu.
Em geral, usar um chroot primitivo é uma boa prática, pois garante que o pacote não dependa de qualquer configuração personalizada em sua máquina de construção.
O processo de instalação envolve a criação de um novo schroot para cada versão do Ubuntu que você deseja segmentar. Isso é bastante simples: use mk-sbuild
para criar um novo chroot. Algo parecido com isso é o que você quer:
mk-sbuild --arch=amd64 --name=lucid lucid
Isto irá guiá-lo para criar um chroot chamado 'lucid-amd64', e imprimirá as seguintes informações úteis quando for feito:
Done building lucid-amd64. To CHANGE the golden image: sudo schroot -c lucid-amd64-source -u root To ENTER an image snapshot: schroot -c lucid-amd64 To BUILD within a snapshot: sbuild -A -d lucid-amd64 PACKAGE*.dsc
Então, assim que seus chroots forem configurados, o processo de construção será:
- No diretório de nível superior do seu pacakge de origem,
debuild -S
para criar um pacote de origem, incluindo<package>_<version>.dsc
- Execute a construção:
sbuild -A -d lucid-amd64 ../<package>_<version>.dsc
Para mais informações, as páginas de manual para mk-sbuild
, schroot
, sbuild
, debootstrap
e debuild
são bastante abrangentes. O link tem boas informações sobre como construir e configurar os chroots. Além disso, há # ubuntu-devel no irc.freenode.net se você precisar de uma mão.