Puis-je avoir deux versions du même package dans un référentiel apt?

19

J'utilise Ubuntu 10.04 sur tout mon environnement. Pour faciliter le déploiement du code, nous implémentons un référentiel privé apt où nous pouvons déployer des versions de notre code.

L'une des exigences de ce référentiel sera que notre service AQ pourra installer n'importe quelle version de notre application à tout moment.

Puis-je stocker plusieurs versions du même package dans un référentiel apt (de préférence dans la même distribution)? Sinon, quelles sont les solutions de contournement possibles que je pourrais utiliser pour obtenir le comportement décrit ci-dessus?

GregB
la source

Réponses:

19

Oui, vous le pouvez et vous n'avez rien à faire de spécial. En fait, les référentiels Debian et Ubuntu habituels ont généralement plusieurs versions de chaque paquet (de oldstable / stable / testing / unstable ou dapper / hardy / lucid / maverick / natty). Les distributions n'ont qu'un seul package dans le fichier d'index de chaque version (les Packagesfichiers), mais vous n'êtes pas obligé de faire de même.

Bien sûr, apt-get install myappn'installera que la dernière version (sauf configuration contraire). Vous pouvez exécuter apt-get install myapp=1.42pour forcer l'installation de la version 1.42.

Attention: si toutes les versions ont le même nom de package, vous ne pouvez pas en installer plus d'une en même temps. Si cela est important, donner chaque version un autre nom de package: myapp-1.42, myapp-1.43, etc. Debian et Ubuntu font pour les versions majeures des bibliothèques, où vous pourriez avoir besoin de plus d'un si vous avez executables liés avec des bibliothèques différentes (par exemple , libcap1et libcap2), ainsi comme pour quelques autres packages tels que le noyau.

Gilles 'SO- arrête d'être méchant'
la source
1
Merci pour l'excellente explication. En guise de suivi, si j'emprunte le chemin de l'ajout de numéros de version à mes packages, cela interrompra-t-il la "mise à niveau apt-get"? Il me semble que chaque fois que je mettrais à jour mon application, elle serait traitée comme une nouvelle installation et je perdrais mes configurations. Je pourrais contourner cela, mais j'aimerais bien comprendre quelles sont les limites avant de prendre une décision d'une manière ou d'une autre. Merci.
GregB
2
La manière habituelle dans ce cas est d'avoir myapp-1.42et ainsi de suite, plus un package myappqui dépend juste du courant myapp-VERSION(ou même myapp-stable, myapp-betaet ainsi de suite).
Gilles 'SO- arrête d'être méchant'
1
Juste une mise en garde: assurez-vous de ne pas oublier -mlors de l'exécution dpkg-scanpackagespour créer votre index de référentiel. Sinon, vous n'obtiendrez pas plusieurs versions de package sur vos Packagesfichiers.
bruno nery