Product SiteDocumentation Site

15.3. Å lage en pakkebrønn for APT

Falcot Corp begynte gradvis å vedlikeholde en rekke Debian-pakker, enten lokalt endret fra eksisterende pakker, eller laget fra bunnen av, for å distribuere interne data og programmer.
For å gjøre utplassering lettere ønsker de å integrere disse pakkene i et pakkearkiv som kan brukes direkte av APT. Av åpenbare vedlikeholdsgrunner ønsker de å skille interne pakker fra lokalt ombygde pakker. Målet for de samsvarende oppføringene i en /etc/apt/sources.list.d/falcot.list-fil er som følger:
deb http://packages.falcot.com/ updates/
deb http://packages.falcot.com/ internal/
Administratorene konfigurerer derfor en virtuell maskin på deres interne HTTP-tjener, med /srv/vhosts/packages/ som roten til det tilhørende nettområdet. Håndteringen av selve arkivet er delegert til mini-dinstall-kommandoen (i den tilsvarende navngitte pakken). Dette verktøyet holder et øye med en incoming/-mappe (i vårt tilfelle, /srv/vhosts/packages/mini-dinstall/incoming/), og venter på nye pakker der; når en pakke er lastet opp, blir den installert i et Debian-arkiv på /srv/vhosts/packages/. Kommandoen mini-dinstall leser *.changes-filen som opprettes når Debian-pakken blir generert. Disse filene inneholder en liste med alle andre filer knyttet til den versjonen av pakken (*.deb, *.dsc, *.diff.gz/*.debian.tar.gz, *.orig.tar.gz, eller tilsvarende med andre komprimeringsverktøy), og disse åpner for at mini-dinstall får vite hvilke filer som skal installeres. *.changes-filer inneholder også navnet på måldistribusjonen (ofte unstable) nevnt i den siste debian/changelog-inngangen, og mini-dinstall bruker denne informasjonen til å avgjøre hvor pakken skal installeres. Dette er grunnen til at administratorer alltid må endre dette feltet før de bygger en pakke, og setter det til internal, eller updates, avhengig av måldistribusjonen. mini-dinstall genererer deretter filene som kreves av APT, for eksempel Packages.gz.
Å konfigurere mini-dinstall krever oppsett av en ~/.mini-dinstall.conf-fil; i Falcot Corp-tilfellet er innholdet som følger:
[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
En avgjørelse verdt å merke seg er generasjonen Release-filer for hvert arkiv. Dette kan hjelpe til med å administrere pakkeinstallasjonsprioriteringer med hjelp av /etc/apt/preferences-konfigurasjonsfilen (se Seksjon 6.2.5, «Styring av pakkeprioriteter» for detaljer).
Å påkalle mini-dinstall starter faktisk en nisse i bakgrunnen. Så lenge denne nissen kjører, vil den se etter nye pakker i incoming/-mappen hver halvtime. Når en ny pakke kommer, vil den bli flyttet til arkivet, og riktige Packages.gz og Sources.gz-filer blir fornyet. Hvis det å kjøre en nisse er et problem, kan og mini-dinstall påkalles manuelt i rekkefølge (med -b-valget) hver gang en pakke blir lastet inn i incoming/-mappen. Andre muligheter som ligger i mini-dinstall er dokumentert på sin mini-dinstall(1)-manualside.