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 setter derfor opp 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
.
Å sette opp 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
-oppsettsfilen (se
Seksjon 6.2.5, «Styring av pakkeprioriteter» for detaljer).
Å påkalle mini-dinstall
starter faktisk en bakgrunnsprosess i bakgrunnen. Så lenge denne bakgrunnsprosessen 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 bakgrunnsprosess 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.