Comment configurer un référentiel privé apt pouvant prendre en charge plusieurs versions?

10

Je cherche à configurer un référentiel privé apt (sur 10.04 LTS) qui peut prendre en charge plusieurs versions.

Je comprends que vous ne pouvez pas installer plusieurs versions d'un package sur un serveur. Il s'agit uniquement d'un environnement de développement où nous voulons pouvoir tester plusieurs versions avant de les publier dans le référentiel de production apt.

Je sais que vous pouvez avoir plusieurs versions en mettant le numéro de version dans le nom du package, mais je veux obtenir le contraire, prendre en charge plusieurs versions d'un même nom de package.

par exemple packagename_1.0_all.deb et packagename_2.0_all.deb plutôt que packagename-1.0_1.0_all.deb et packagename-2.0_2.0_all.deb

Pour ceux qui sont familiers avec le déploiement automatisé de Puppet - nous pouvons spécifier la version d'un package que nous voulons sur un serveur (avec la balise d'assurer en utilisant le même nom de package).

J'ai essayé le debmarshal de Google décrit sur http://wiki.debian.org/HowToSetupADebianRepository mais je n'ai pas pu le faire fonctionner en raison d'un manque de documentation.

À M
la source

Réponses:

9

J'avais besoin d'un dépôt multi-version pour les mêmes raisons que vous et c'est ce que j'ai fini par:

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

Créez ensuite update-repo.shqui mettra à jour votre référentiel avec les informations des packages

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

Placez vos fichiers .deb dans / var / www / repo / binary et exécutez update-repo.sh

Sur le reste des machines:

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

etc...

La magie -mopère à cause de l' exécution de dpkg-scanpackages. Sans -m, une seule version est répertoriée dans Packages.gz

Je ne l'ai pas essayé, mais il devrait être trivial de faire de même pour des sous-dépôts séparés, comme proposé par hbdgaf.

dtsomp
la source
1
J'ai cherché autour d'un LOT jusqu'à ce que je trouve votre réponse avec le -mcommutateur. Merci beaucoup!
Mario Tacke
3

Hébergez-le sous un nom de distribution différent. lucide et test par exemple. Modifiez ensuite vos entrées dans votre boîte
de test de: deb http://homegrown.local/ubuntu lucid main
à: deb http://homegrown.local/ubuntu testing main

RobotHumains
la source