¿Puedo tener dos versiones del mismo paquete en un repositorio apto?

19

Estoy ejecutando Ubuntu 10.04 en todo mi entorno. Para facilitar la implementación del código, estamos implementando un repositorio apt privado donde podemos implementar compilaciones de nuestro código.

Uno de los requisitos de este repositorio será que nuestro departamento de control de calidad podrá instalar cualquier versión de nuestra aplicación en cualquier momento.

¿Puedo almacenar varias versiones del mismo paquete en un repositorio de apt (preferiblemente en la misma distribución)? Si no, ¿cuáles son algunas posibles soluciones que podría utilizar para obtener el comportamiento descrito anteriormente?

GregB
fuente

Respuestas:

19

Sí, puedes y no necesitas hacer nada especial. De hecho, los repositorios habituales de Debian y Ubuntu suelen tener varias versiones de cada paquete (desde oldstable / stable / testing / instable o dapper / hardy / lucid / maverick / natty). Las distribuciones solo tienen un único paquete en el archivo de índice de cada versión (los Packagesarchivos), pero no es necesario que haga lo mismo.

Por supuesto, apt-get install myappsolo instalará la última versión (a menos que esté configurado de otra manera). Puede ejecutar apt-get install myapp=1.42para forzar la instalación de la versión 1.42.

Advertencia: si todas las versiones tienen el mismo nombre de paquete, no puede tener más de una instalada al mismo tiempo. Si esto es importante, dar a cada versión de un nombre de paquete: myapp-1.42, myapp-1.43, etc. Debian y Ubuntu hacen esto para las versiones principales de las bibliotecas, en las que puede necesitar más de una si tiene ejecutables vinculados con diferentes bibliotecas (por ejemplo, libcap1e libcap2), así en cuanto a algunos otros paquetes como el kernel.

Gilles 'SO- deja de ser malvado'
fuente
1
Gracias por la excelente explicación. Como seguimiento, si sigo el camino de agregar números de versión a mis paquetes, ¿se romperá "apt-get upgrade"? Me parece que cada vez que actualizo mi aplicación, se tratará como una instalación nueva y perdería mis configuraciones. Podría solucionar esto, pero me gustaría comprender cuáles son las limitaciones antes de tomar una decisión de una forma u otra. Gracias.
GregB
2
La forma habitual en este caso es tener myapp-1.42y así sucesivamente, más un paquete myappque solo depende de la corriente myapp-VERSION(o incluso myapp-stable, myapp-betay así sucesivamente).
Gilles 'SO- deja de ser malvado'
1
Solo una advertencia: asegúrese de no olvidar -mcuando se ejecuta dpkg-scanpackagespara construir su índice de repositorio. De lo contrario, no obtendrá múltiples versiones de paquetes en sus Packagesarchivos.
bruno nery