Product SiteDocumentation Site

15.3. Creació d'un repositori de paquets per a APT

Falcot Corp gradually started maintaining a number of Debian packages, either locally modified from existing packages or created from scratch to distribute internal data and programs.
Per facilitar-ne la distribució, es vol integrar aquests paquets en un arxiu de paquets que pugui ser utilitzat directament per APT. Per raons de manteniment òbvies, es volen separar els paquets interns dels paquets refets localment. L'objectiu és que les entrades corresponents en un fitxer /etc/apt/sources.list.d/falcot.list siguin les següents:
deb http://packages.falcot.com/ updates/
deb http://packages.falcot.com/ internal/
Per tant, els administradors configuren un servidor virtual al seu servidor HTTP intern, amb /srv/vhosts/packages/ com l'arrel de l'espai web associat. La gestió del mateix arxiu es delega a l'ordre mini-dinstall (al paquet amb el mateix nom). Aquesta eina manté un ull al directori incoming/ (en el nostre cas, /srv/vhosts/packages/mini-dinstall/incoming/) i espera nous paquets allà; quan s'hi envia un paquet, s'instal·la en un arxiu Debian a /srv/vhosts/packages/. L'ordre mini-dinstall llegeix el fitxer *.changes creat quan es genera el paquet Debian. Aquests fitxers contenen una llista de tots els altres fitxers associats amb la versió del paquet (*.deb,*.dsc,*.diff.gz/*.debian.tar.gz,*.orig.tar.gz, o els seus equivalents amb altres eines de compressió), i aquests permeten a mini-dinstall saber quins fitxers cal instal·lar. Els fitxers *.changes també contenen el nom de la distribució de destinació (sovint unstable) mencionada a l'última entrada de debian/changelog, i mini-dinstall utilitza aquesta informació per decidir on s'ha d'instal·lar el paquet. Per això els administradors sempre han de canviar aquest camp abans de construir un paquet, i establir-lo a internal o updates, depenent de la ubicació de destinació. mini-dinstall després genera els fitxers requerits per APT, com ara Packages.gz.
La configuració de mini-dinstall requereix configurar un fitxer ~/.mini-dinstall.conf; en el cas Falcot Corp, el contingut és el següent:
[DEFAULT]
archive_style = flat
archivedir = /srv/vhosts/packages

verify_sigs = 0
mail_to = admin@falcot.com

generate_release = 1
release_origin = Falcot Corp
release_codename = stable

[updates]
release_label = Recompiled Debian Packages

[internal]
release_label = Internal Packages
Una decisió que val la pena assenyalar és la generació de fitxers Release per a cada arxiu. Això pot ajudar a gestionar les prioritats d'instal·lació de paquets utilitzant el fitxer de configuració /etc/apt/preferences (vegeu Secció 6.2.5, «Gestió de les prioritats dels paquets» per als detalls).
Invocar mini-dinstall en realitat inicia un dimoni en segon pla. Mentre s'executi aquest dimoni, comprovarà si hi ha paquets nous al directori incoming/ cada mitja hora; quan arriba un paquet nou, es mourà a l'arxiu i es regeneraran els fitxers Packages.gz i Sources.gz. Si l'execució d'un dimoni és un problema, mini-dinstall també es pot invocar manualment en mode per lots o «batch» (amb l'opció -b) cada vegada que es puja un paquet al directori incoming/. Altres possibilitats proporcionades per mini-dinstall estan documentades a la seva pàgina de manual mini-dinstall(1).