Como criar e administrar os PPAs de arquitetura múltipla?

11

Eu tenho um programa que precisa ser recompilado para cada versão do Ubuntu.

Atualmente estou empacotando-o usando o PPA do Ubuntu apenas para a distribuição atual.

Eventualmente, tenho que fornecer pacotes para a versão anterior do Ubuntu.

Não sei como conseguir isso.

Como o servidor de compilação do PPA do Ubuntu funciona - ele apenas observa o campo de distribuição na entrada do changelog mais atual (no arquivo debian / changelog) para determinar qual distribuição o pacote deve ser compilado?

A especificação debian permite adicionar várias distribuições no campo de distribuição. Mas isso não parece me ajudar.

Alguns documentos do Ubuntu falam sobre a codificação do nome da distribuição no número da versão (no arquivo changelog debian ).

Mas como isso funciona na prática? Uma nova versão do programa está disponível, e depois? Eu adiciono para cada distribuição uma nova entrada de changelog e o servidor de criação de PPA constrói automaticamente para cada distribuição novos pacotes depois de processá-los? Ou o buildserver do PPA apenas observa a primeira entrada do changelog?

    
por maxschlepzig 01.09.2010 / 19:10

3 respostas

7

O caminho a percorrer é fazer o upload de uma vez para cada versão do Ubuntu .

O Launchpad não cria pacotes para versões do Ubuntu que não são mais suportados, e apenas cria um pacote para uma versão específica do Ubuntu. A versão de destino é (como você já sabe) especificada no arquivo changelog , pela entrada mais recente!

Lembre-se de que os pacotes dos quais seu programa depende podem não estar disponíveis na mesma versão em todas as versões do Ubuntu.

Você também fala sobre "multi-arquitetura" (arquitetura = tipo CUP, ex. x86, LPIA, AMD64) isso não faz diferença, pois cada pacote carregado é construído para todas as arquiteturas disponíveis contanto que você tenha Architecture: any no pacote definição ( debian/control ) arquivo, isso também permite que você faça o pacote depender de pacotes diferentes para arquiteturas diferentes (definir o pacote mais de uma vez)

    
por LassePoulsen 01.09.2010 / 22:16
10

O Launchpad tem um novo recurso atualmente em beta que permite que você construa seu pacote para várias versões do Ubuntu de uma vez sem qualquer trabalho extra. Você pode até construir automaticamente seus pacotes todos os dias. link

    
por Isaiah 01.09.2010 / 22:19
6

Com relação às convenções de nomenclatura, o padrão é fazer algo assim:

  • 1.0-0ubuntu1 para o pacote que termina no arquivo oficial do Ubuntu
  • 1.0-0ubuntu1 ~ lucidppa1 para a versão do pacote que você coloca no seu PPA para lucidez
  • 1.0-0ubuntu1 ~ karmicppa1 para a versão desse pacote para o Karmic

A razão é que um ~ no campo de versão representa "menos que nada" para um número de versão. Então, se alguém adicionar seu PPA no Karmic, ele receberá o pacote ~ karmicppa1. Quando eles atualizarem para o Lucid (e lerem seu PPA), ele será substituído pelo pacote Lucid PPA. Se o seu pacote entrar no arquivo oficial, a transição para longe do seu PPA ocorrerá sem problemas.

A outra vantagem é que colocar o release no campo de versão deixa claro para qual release os arquivos se aplicam (e lembra sutilmente que você faça upload de um por release). Você também pode precisar de diferentes ramificações para cada versão do Ubuntu para quando você tiver dependências diferentes, por exemplo.

    
por Scott Ritchie 30.09.2010 / 10:17