PPA e imballaggio: avere versioni di pacchetti per più distro


36

(citazione dalla chat)

Ho un PPA sul launchpad per i pacchetti sorgente per un progetto bot IRC a cui sono associato (dato che è tutto il pacchetto intermedio per il materiale tra le versioni, è classificato come un PPA "sperimentale"). Domanda: ho già impacchettato le cose per una build lucida. Qualche idea di come sarei in grado di creare la stessa confezione, tranne imballarla per un anticonformista, e metterla nello stesso PPA in cui ho messo la confezione lucida?

Risposte:


42

Probabilmente il modo più semplice è semplicemente copiare i file binari su Launchpad:

  1. Vai al tuo PPA e fai clic su "Visualizza i dettagli del pacchetto":

    inserisci qui la descrizione dell'immagine

  2. Fai clic su "Copia pacchetti":

    inserisci qui la descrizione dell'immagine

  3. Seleziona i pacchetti Lucid:

    inserisci qui la descrizione dell'immagine

  4. Seleziona "Maverick" per la serie e scegli di "copiare i binari esistenti":

    inserisci qui la descrizione dell'immagine

  5. Fai clic su "Copia pacchetti" e il gioco è fatto!


Grazie mille Le tue istruzioni erano esatte . Grazie mille anche per la rapida risposta.
Thomas Ward

@Evil: nessun problema. Sono contento di poterti aiutare!
Nathan Osman,

4
NOTA PER ALTRE DOMANDE CHE COLLEGANO QUI !!! La copia dei file binari esistenti NON FUNZIONA SEMPRE per i programmi destinati ad altre versioni di Ubuntu! Vedi il mio rkhunter PPA e i log delle modifiche per la versione Lucida per capire cosa intendo: launchpad.net/~trekcaptainusa-tw/+archive/rkhunter/+packages
Thomas Ward

@ThomasWard: buon punto - non sempre funziona.
Nathan Osman,

2
@KhurshidAlam Ci scusiamo per la risposta super super in ritardo. Ciò non andrà a buon fine con un "Log delle modifiche non valido" e, in quanto tale, è necessario contrassegnare ciascuno separatamente separatamente quando si utilizza un PPA con una versione diversa. [ launchpad.net/~nginx/+archive/stable ] ( launchpad.net/~nginx/+archive/stable ) ne è un buon esempio, perché per farlo costruire devo aggiungere la distribuzione alla versione in modo che si costruisca correttamente con tutte le diverse librerie. (Per il momento mantengo le ppas del team di Nginx, quindi mi serve questo come esempio.)
Thomas Ward

11

Se la copia dei file binari per il pacchetto che stai creando non funziona, dovrai caricare un pacchetto sorgente per ogni versione della distribuzione modificando il debian/changelogfile.

Come reimballare per un'altra versione di Distro

  1. Modifica il debian/changelogfile nella directory del pacchetto sorgente
  2. Cambiare sia la versione e la distribuzione di destinazione per riflettere che distro si sta costruendo per

    Ad esempio:nginx (1:1.4.1-0ubuntu1~preciseppa1) precise; urgency=low
  3. Ricrea il pacchetto sorgente: debuild -S
  4. Carica il .changesfile sul tuo PPA:dput ppa:teward/nginx-stable-testing ../nginx_1.4.1-0ubuntu1~preciseppa1_source.changes

Se la compilazione ha esito positivo, allora congratulazioni per aver appena creato un pacchetto per quella distribuzione! In caso contrario, dovrai controllare il registro di build su Launchpad e risolvere eventuali problemi riscontrati.

Riferimenti:


Questo è ciò che faccio! : D I MOTU (repository gods of the universe) hanno spiegato questo quando avevo bisogno di fare build diverse per nginxe altri programmi in un PPA e mi hanno aiutato a risolvere molti dei miei problemi. Grazie per aver pubblicato questo! :)
Thomas Ward

Sì, ho pensato che queste sarebbero state informazioni utili per documentare e rendere disponibili a nuovi packager, in quanto potrebbe esserci una curva di apprendimento ripida nell'uso di tutti gli strumenti di packaging debian, upload PPA, convenzioni e build di debug non riuscite.
TrinitronX,

Infatti. Tuttavia, non sto cambiando la risposta accettata, perché al momento di questa domanda non c'era motivo di preoccuparsi delle diverse librerie disponibili nelle varie versioni di Ubuntu. Con nginxo rkhuntero altri pacchetti di cui eseguo il backport spesso, c'è un enorme problema di dipendenze da affrontare (diverso depends:nel file di controllo e simili), quindi uso sempre programversion-1~RELEASE0dove ~ RELEASE0 è sempre un numero con la data release in cui si trova .. Di solito quando eseguo il backport da Debian su Ubuntu è così :)
Thomas Ward

Sì, le dipendenze sono sicuramente un punto dolente per il backporting ;-) Sono d'accordo, la risposta accettata dovrebbe essere sufficiente nella maggior parte dei casi e per gli utenti dei repository di controllo del codice sorgente del bazar, usare anche la ricetta del bzr-builder di Launchpad sembra attraente. Tuttavia, quando si tratta di pacchetti con molte dipendenze, a volte è necessario creare un pacchetto personalizzato per la distribuzione target.
TrinitronX,

E eseguo il backport nginxda Debian Unstable a Precise, Quantal, Raring e Saucy (e Trusty in un PPA, ma mi assicuro anche che Trusty, fino al congelamento di Debian, avrà le ultime novità di Debian unite in: P), per il team NGINX, ma ahimè a volte ci sono bug che non riesco a correggere e Debian deve affrontare ... ecco perché ho un buon rapporto con i manutentori di Debian :)
Thomas Ward
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.