Como criar o pacote .deb sem pacotes para as dependências disponíveis?

1

No momento, estou mergulhando no sistema de empacotamento .deb. Sou muito novo nisso, então tenho uma pergunta para você porque não consegui encontrar uma resposta precisa em outros sites.

Suponha que eu gostaria de criar um pacote .deb (distribuível) para Software A com pbuilder . As dependências são libqrencode , libconfig e libABC . Para o primeiro a dependências, já existem pacotes nos repositórios oficiais do Ubuntu. Então, eu só tenho que adicionar essas duas libs ao arquivo debian/control (e pbuilder faz o resto). Mas para libABC não há nenhum pacote .deb no repositório oficial e também não há PPA, etc.

A única coisa que eu tenho é o código-fonte do GitHub, por exemplo.

Então, minha pergunta é como devo lidar com isso?

  • Preciso compilar libABC da origem no meu sistema? Mas como eu "adiciono" a pbuilder então?
  • Ou eu também tenho que criar outro pacote .deb para libABC primeiro? Como eu poderia "adicionar" a pbuilder ? E se libABC tiver dependências sem pacotes .deb existentes também?
  • Ou é uma abordagem completamente diferente?

Agradecemos antecipadamente por sua ajuda!

    
por Aliquis 24.03.2016 / 00:02

1 resposta

0

O que você está tentando fazer provavelmente não funcionará, ou fará um grande esforço para começar a trabalhar da maneira que você deseja.

pbuilder , sbuild , etc. todos trabalham dentro do núcleo intacto chroot s , que contém certos pacotes críticos dentro do chroot para compilar o software. O problema é que, quando você passa um pacote fonte para um desses, você acaba tendo que fazer o download das dependências no chroot , e há poucas maneiras de contornar isso.

A única forma de contornar isso é entrar no chroot do ambiente pristine e, em seguida, instalar manualmente pacotes para a distribuição do chroot no Ubuntu (sim, você pode ter chroot s para diferentes versões do Ubuntu espalhadas pelo seu sistema). Isso pode ser uma grande dor de cabeça - porque você não apenas precisa das dependências para o seu pacote, como também precisa das dependências das dependências, além de pacotes de software adicionais para instalar em várias bibliotecas, linguagens de codificação, dependências extras determinadas pelo sistema. , etc.

Por fim, eu não aconselho a criação de pacotes redistribuíveis offline sem as dependências disponíveis. Use pbuilder ou sbuild ou o ambiente de criação de pacotes baseado em chroot de sua escolha, mas faça isso com uma conexão com a Internet. Não tente e execute chroot -based builds a menos que você tenha modificado o chroot em uma conexão com a Internet, ou use um sistema especificamente dedicado para o edifício que tenha acesso seletivo à Internet para os repositórios do Ubuntu.

    
por Thomas Ward 29.03.2016 / 15:22