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).