Creare un repository deb con diverse versioni dello stesso pacchetto


16

Voglio creare il mio repository deb per archiviare alcuni pacchetti. Ho provato reprepro e funziona benissimo, tranne per una caratteristica fondamentale. Reprepro non può archiviare diverse versioni dello stesso pacchetto nel repository.

La capacità di memorizzare diverse versioni dello stesso pacchetto è essenziale per me, quindi sto chiedendo quale software può fare questo.

Ecco un pezzo di FAQ di reprepro che mostra che non può farlo:

3.1) Can I have two versions of a package in the same distribution?
-------------------------------------------------------------------
Sorry, this is not possible right now, as reprepro heavily optimizes
at only having one version of a package in a suite-type-component-architecture
quadruple.
You can have different versions in different architectures and/or components
within the same suite. (Even different versions of a architecture all package
in different architectures of the same suite). But within the same
architecture and the same component of a distribution it is not possible.

Risposte:


11

Per quanto ne so, mini-dinstall richiede file debian .changes quando si aggiungono pacchetti. Dato che avevo solo i file .deb disponibili, ho scoperto che supporta giustamente anche più versioni.

Un'altra opzione più leggera è il trasporto merci che è un insieme di script di shell per mantenere un repository debian. Ora (2017) uso il trasporto merci da tre anni per mantenere un deposito piccolo ma attivamente aggiornato, con buoni risultati. Una caratteristica chiave era la capacità di conservare più versioni di un pacchetto.

Modifica: collegamento aggiornato al nuovo repository merci poiché il precedente non era stato aggiornato dal 2014.


1
Downvoter: cura di elaborare?
Bohrax,

1
Si noti che freightè stato biforcato e ora viene mantenuto su github.com/freight-team/freight - la versione originale non è stata aggiornata dal 2014.
Wolfgang,

@WolfgangGrazie, aggiornato il link nella risposta!
Bohrax,

9

La soluzione è utilizzare mini-dinstall per gestire i repository deb. Non elimina la versione precedente del pacchetto dal repository.


2
Questo sembra essere vero solo se "keep_old = 1" è impostato in mini-dinstall.conf. L'impostazione predefinita (in base alla pagina man e all'esperienza recente) è di rimuovere le versioni precedenti. Testato con la versione 0.6.29ubuntu1.
pendore

2

Ho sentito cose positive su un'alternativa, il trasporto:

https://github.com/rcrowley/freight

HTH, mistige


Non sono sicuro del motivo per cui questa risposta è stata sottoposta a voto negativo, a meno che non fosse a causa della sua mancanza di dettagli. Il trasporto infatti sembra un'alternativa praticabile a reprepro, che intendo provare poiché ho le stesse necessità dell'OP
killthrush,

Non sono il downvoter, ma forse perché il trasporto merci era già stato menzionato nella mia risposta un anno fa. In ogni caso, posso garantirlo come un'opzione praticabile. L'ho usato per oltre un anno per un repository piccolo ma attivamente aggiornato. Siamo stati morsi da questo problema però: github.com/rcrowley/freight/pull/65
bohrax

1
@bohrax: sembra che freightsia stato biforcato e ora viene mantenuto su github.com/freight-team/freight .
Wolfgang,

-1

Se sei disposto a scrivere tu stesso il file Packages (ad es. Con uno script personalizzato), puoi inserire diverse versioni dello stesso pacchetto e apt-get ti permetterà di installare una versione specifica con la sintassi

apt-get install packagename=version

Puoi ottenere tutte le informazioni di cui hai bisogno per scrivere questo pacchetto

dpkg-deb --info package.deb

e

md5sum package.deb

apt-get upgrade sceglierà anche il numero di versione più alto (almeno nei miei test limitati).


Grazie per la risposta, ma preferisco usare un sistema che genererà il file Packages.
bessarabov,

Questo non risponde alla domanda sulla creazione di un repository di pacchetti con più versioni dello stesso pacchetto. È una risposta a un'altra domanda.
gertvdijk,

-2

Come ti dice il software, quelli più vecchi vengono eliminati quando ne arriva uno nuovo. Di solito, questo viene fatto con più repository. Proprio come Ubuntu e Debian hanno repository multipli per stabile e instabile o Natty, Oneiric, ..., avrai bisogno di repository multipli.

Di solito i gestori dei pacchetti selezionano la versione più recente di un pacchetto, quindi sarebbe difficile scegliere anche per gli utenti.


1
La creazione di più repository non risolve il mio problema. Ho bisogno di più versioni dello stesso pacchetto per essere nello stesso repository. Per coloro che sono interessati al motivo per cui ho bisogno di questo, ecco un argomento con la mia spiegazione: answer.launchpad.net/launchpad/+question/171452
bessarabov,

Temo che tu debba guardare il tuo problema da una prospettiva diversa poiché i normali repository Debian non supportano più versioni.
Martin Ueding,

2
Hai torto. Si prega di consultare il repository debian regolare ftp.us.debian.org/debian/pool/main/p/perl e vedere che esistono diverse versioni dello stesso pacchetto per la stessa archivio.
Bessarabov,
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.