Product SiteDocumentation Site

15.3. Créer une archive de paquets pour APT

Les administrateurs de Falcot SA maintiennent désormais un certain nombre de paquets Debian modifiés ou créés par eux et qui leur servent à diffuser des données et programmes internes.
Pour faciliter leur déploiement, ils souhaitent les intégrer dans une archive de paquets directement utilisable par APT. Pour des raisons évidentes de maintenance, ils désirent y séparer les paquets internes des paquets officiels recompilés. Les entrées qui correspondraient à cette situation dans un fichier /etc/apt/sources.list.d/falcot.list seraient les suivantes :
deb http://packages.falcot.com/ updates/
deb http://packages.falcot.com/ internal/
Les administrateurs configurent donc un hôte virtuel sur leur serveur HTTP interne. La racine de l'espace web associé est /srv/vhosts/packages/. Pour gérer ces archives, ils ont décidé d'employer le programme mini-dinstall (du paquet éponyme). Celui-ci scrute un répertoire d'arrivée incoming/ (en l'occurrence, il s'agira de /srv/vhosts/packages/mini-dinstall/incoming/) pour y récupérer tout paquet Debian déposé et l'installer dans une archive Debian (dont le répertoire est /srv/vhosts/packages/). Ce programme fonctionne en traitant les fichiers .changes créés lors de la génération d'un paquet Debian. Un tel fichier contient en effet la liste de tous les autres fichiers associés à cette version du paquet (.deb, .dsc, .diff.gz/debian.tar.gz, .orig.tar.gz ou fichiers équivalents utilisant d'autres outils de compression) et indique donc à mini-dinstall quels fichiers installer. Accessoirement, ce fichier reprend le nom de la distribution de destination (c'est souvent unstable) indiquée en tête du fichier debian/changelog, information utilisée par mini-dinstall pour décider de l'emplacement d'installation du paquet. C'est la raison pour laquelle les administrateurs doivent systématiquement modifier ce champ avant la génération d'un paquet et y placer internal ou updates, selon l'emplacement souhaité. mini-dinstall génère alors les fichiers indispensables au bon fonctionnement d'APT, par exemple Packages.gz.
La configuration de mini-dinstall nécessite de mettre en place un fichier ~/.mini-dinstall.conf, que les administrateurs de Falcot SA ont renseigné comme suit :
[DEFAULT]
archive_style = flat
archivedir = /srv/vhosts/packages

verify_sigs = 0
mail_to = admin@falcot.com

generate_release = 1
release_origin = Falcot SA
release_codename = stable

[updates]
release_label = Recompiled Debian Packages

[internal]
release_label = Internal Packages
Il est intéressant d'y remarquer la décision de générer des fichiers Release pour chacune des archives. Cela permettra éventuellement de gérer les priorités d'installation des paquets à l'aide du fichier de configuration /etc/apt/preferences (voir Section 6.2.5, « Gérer les priorités associées aux paquets » pour les détails).
L'exécution de mini-dinstall démarre en fait le démon en arrière-plan. Tant qu'il fonctionne, il vérifie toutes les demi-heures si un nouveau paquet est disponible dans le répertoire incoming/, le place dans l'archive et régénère les différents fichiers Packages.gz et Sources.gz. Si la présence d'un démon constitue un problème, il est possible de l'invoquer en mode non interactif (ou batch), à l'aide de l'option -b, à chaque fois qu'un paquet aura été déposé dans le répertoire incoming/. Découvrez les autres possibilités offertes par mini-dinstall en consultant sa page de manuel mini-dinstall(1).