Come creare e amministrare PPA multi-architettura?


13

Ho un programma che deve essere ricompilato per ogni versione di Ubuntu.

Attualmente sto impacchettandolo usando PPA di Ubuntu solo per la distribuzione attuale.

Alla fine, devo fornire i pacchetti per la precedente versione di Ubuntu.

Non sono sicuro di come raggiungere questo obiettivo.

Come funziona il server di build PPA di Ubuntu: esamina semplicemente il campo di distribuzione nella voce changelog più recente (nel file debian / changelog) per determinare per quale distribuzione deve essere compilato il pacchetto?

La specifica debian consente di aggiungere più distribuzioni nel campo di distribuzione. Ma questo non sembra aiutarmi.

Alcuni documenti di Ubuntu parlano della codifica del nome della distribuzione nel numero di versione (nel file di log delle modifiche debian).

Ma come funziona in pratica? È disponibile una nuova versione del programma, quindi cosa? Aggiungo per ogni distribuzione una nuova voce del log delle modifiche e il buildserver di PPA costruisce automaticamente per ogni distribuzione nuovi pacchetti dopo averlo scaricato? O il buildserver PPA guarda solo la prima voce del log delle modifiche?


1
Sono davvero interessato anche a questo processo!
Marco Ceppi

Risposte:


7

La strada da percorrere è caricare una volta per ogni versione di Ubuntu .

Launchpad non crea pacchetti per le versioni di Ubuntu che non sono più supportate e non crea un pacchetto solo per una versione specifica di Ubuntu. La versione di destinazione è (come già sapete) specificata nel changelogfile, dalla voce più recente!

Ricorda di essere consapevole del fatto che i pacchetti da cui dipende il tuo programma potrebbero non essere disponibili nella stessa versione in tutte le versioni di Ubuntu.

Parli anche di "multi-architettura" (architettura = tipo CUP, ad es. X86, LPIA, AMD64), questo non fa differenza dal momento che ogni pacchetto caricato è compilato per tutte le architetture disponibili purché tu abbia Architecture: anynel debian/controlfile di definizione del pacchetto ( ), ciò consente anche di far dipendere il pacchetto da pacchetti diversi per architetture diverse (definire il pacchetto più di una volta)


10

Launchpad ha una nuova funzionalità attualmente in versione beta che consente di creare il pacchetto per più versioni di Ubuntu contemporaneamente senza alcun lavoro aggiuntivo. Puoi persino creare automaticamente i tuoi pacchetti ogni giorno. https://help.launchpad.net/Packaging/SourceBuilds/GettingStarted testo alternativo


1
Sembra interessante. Non posso usarlo direttamente, poiché non sto usando bzr né launchpad per l'hosting di repository (sto usando Mercurial). Ma! Forse è possibile creare un repository bzr su launchpad e scaricare gli ultimi changeset dal mio repository principale lì, ogni volta che voglio innescare una nuova generazione di pacchetti.
maxschlepzig,

Non scrivo nulla di così spesso e sono entusiasta di questo.
aperson

@maxschlepzig Poni una domanda separata su come importare le tue cose Hg in Launchpad e risponderò.
Jorge Castro,

6

Per quanto riguarda le convenzioni di denominazione, lo standard è fare qualcosa del genere:

  • 1.0-0ubuntu1 per il pacchetto che finisce nell'archivio ufficiale di Ubuntu
  • 1.0-0ubuntu1 ~ lucidppa1 per la versione di quel pacchetto che hai inserito nel tuo PPA per lucid
  • 1.0-0ubuntu1 ~ karmicppa1 per la versione di quel pacchetto per Karmic

Il motivo è che un ~ nel campo della versione rappresenta "meno di niente" per un numero di versione. Quindi, se qualcuno aggiunge il tuo PPA su Karmic, otterrà il pacchetto ~ karmicppa1. Quando eseguiranno l'aggiornamento a Lucid (e leggeranno il tuo PPA), verrà sostituito con il pacchetto Lucid PPA. Se il tuo pacchetto entra nell'archivio ufficiale, la transizione dal tuo PPA procederà senza intoppi.

L'altro vantaggio è che inserendo la versione nel campo versione si chiarisce a quale versione si applicano i file (e ricorda sottilmente di caricarne una per versione). Potresti anche aver bisogno di rami diversi per ogni versione di Ubuntu, ad esempio quando hai dipendenze diverse.


Scott - c'è una sorta di documentazione su questo?
Bartosz Radaczyński,

Il ~ e roba è probabilmente etichettato da qualche parte oscuro. Il resto sono solo convenzioni che ho osservato tra gli altri sviluppatori, non pratiche documentate ufficiali.
Scott Ritchie il

Ok, grazie, la tua convenzione di denominazione suggerita funziona bene.
Bartosz Radaczyński,

Dovrei aggiungere che a volte questo viene ulteriormente esteso per mettere un ulteriore ~ ​​prima del ppa: 1.0-0ubuntu1 ~ karmic1 ~ ppa1 La ragione di ciò è che un aggiornamento ufficiale di versione stabile a Karmic potrebbe essere rilasciato come 1.0-0ubuntu1 ~ karmic1, e noi desidera che la versione di PPA sia inferiore a quella.
Scott Ritchie,

Ho dovuto chiedere in #launchpad su Freenode, e apparentemente questo è semi-documentato sul Wiki LaunchPad in Creazione di un pacchetto sorgente . Grazie per le informazioni su questa convenzione, è abbastanza utile ^ _ ^
TrinitronX
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.