¿Cómo configuro un repositorio apt privado que pueda soportar múltiples versiones?

10

Estoy buscando cómo configurar un repositorio apt privado (en 10.04 LTS) que pueda admitir múltiples versiones.

Entiendo que no puede tener varias versiones de un paquete instalado en un servidor. Esto es puramente para un entorno de desarrollo en el que queremos poder probar varias versiones antes de lanzarlas al repositorio apto de producción.

Sé que puede tener varias versiones poniendo el número de versión en el nombre del paquete, sin embargo, quiero lograr lo contrario, admitir múltiples versiones de un mismo nombre de paquete.

ej. packagename_1.0_all.deb y packagename_2.0_all.deb en lugar de packagename-1.0_1.0_all.deb y packagename-2.0_2.0_all.deb

Para aquellos que están familiarizados con el despliegue automático de Puppet, podemos especificar qué versión de un paquete queremos en un servidor (con la etiqueta de aseguramiento usando el mismo nombre de paquete).

He probado el debmarshal de Google descrito en http://wiki.debian.org/HowToSetupADebianRepository pero no pude hacerlo funcionar debido a la falta de documentación.

Tom
fuente

Respuestas:

9

Necesitaba un repositorio de versiones múltiples por las mismas razones que tú y esto es lo que terminé con:

apt-get install apache2 dpkg-dev
mkdir -p /var/www/repo/binary

Luego cree update-repo.shque actualizará su repositorio con la información de los paquetes

#!/bin/bash
cd /var/www/repo
dpkg-scanpackages -m binary /dev/null | gzip -9c > /var/www/repo/binary/Packages.gz

Coloque sus archivos .deb en / var / www / repo / binary y ejecute update-repo.sh

En el resto de las máquinas:

echo "deb http://myserver/repo binary" > /etc/apt/sources.list.d/myrepo.list
apt-get update

etcétera etcétera...

La magia ocurre -mcuando se ejecuta dpkg-scanpackages. Sin esto -m, solo una versión aparece en Packages.gz

No lo he probado, pero debería ser trivial hacer lo mismo para los repositorios separados, como lo propuso hbdgaf.

dtsomp
fuente
1
He buscado MUCHO hasta que encontré tu respuesta con el -minterruptor. ¡Muchas gracias!
Mario Tacke
3

Hospedelo con un nombre de distribución diferente. lúcido y prueba por ejemplo. Luego cambie sus entradas en su cuadro de prueba
de: deb http://homegrown.local/ubuntu lucid main
a: deb http://homegrown.local/ubuntu testing main

RobotHumanos
fuente