Posso avere due versioni dello stesso pacchetto in un repository apt?


19

Sto eseguendo Ubuntu 10.04 in tutto il mio ambiente. Per facilitare la distribuzione del codice, stiamo implementando un repository apt privato in cui possiamo distribuire build del nostro codice.

Uno dei requisiti di questo repository sarà che il nostro dipartimento di controllo qualità sarà in grado di installare qualsiasi versione della nostra applicazione in qualsiasi momento.

Posso memorizzare più versioni dello stesso pacchetto in un repository apt (preferibilmente nella stessa distribuzione)? In caso contrario, quali sono alcune possibili soluzioni alternative che potrei utilizzare per ottenere il comportamento descritto sopra?

Risposte:


19

Sì, puoi e non devi fare nulla di speciale. In effetti, i soliti repository Debian e Ubuntu in genere hanno diverse versioni di ciascun pacchetto (da oldstable / stable / testing / unstable o dapper / hardy / lucid / maverick / natty). Le distribuzioni hanno un solo pacchetto nel file indice di ciascuna versione (i Packagesfile), ma non è necessario seguirne l'esempio.

Naturalmente, apt-get install myappinstallerà solo l'ultima versione (a meno che non sia configurato diversamente). È possibile eseguire apt-get install myapp=1.42per forzare l'installazione della versione 1.42.

Avvertenza: se tutte le versioni hanno lo stesso nome di pacchetto, non è possibile installarne più di una contemporaneamente. Se questo è importante, dare ogni versione un nome pacchetto diverso: myapp-1.42, myapp-1.43, ecc Debian e Ubuntu fanno per le principali versioni di biblioteche, in cui potrebbe essere necessario più di uno se si dispone di eseguibili collegati con diverse librerie (ad esempio libcap1e libcap2), nonché come per alcuni altri pacchetti come il kernel.


1
Grazie per l'eccellente spiegazione. Come follow-up, se seguo il percorso di aggiunta dei numeri di versione ai miei pacchetti, si interromperà "apt-get upgrade"? Mi sembra che ogni volta che aggiorno la mia app, questa verrà trattata come una nuova installazione e perderei le mie configurazioni. Potrei aggirare il problema, ma mi piacerebbe capire quali sono i limiti prima di prendere una decisione in un modo o nell'altro. Grazie.
GregB,

2
Il solito modo in questo caso è avere myapp-1.42e così via, oltre a un pacchetto myappche dipende solo dalla corrente myapp-VERSION(o anche myapp-stable, myapp-betae così via).
Gilles 'SO- smetti di essere malvagio' il

1
Solo un avvertimento: assicurati di non dimenticare -mdurante l'esecuzione dpkg-scanpackagesper creare il tuo indice di repository. Altrimenti, non otterrai più versioni del pacchetto sui tuoi Packagesfile.
bruno nery il
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.