Scroll to navigation

deb822(5) dpkg suite deb822(5)

NAMN

deb822 - Debians RFC822-styrdataformat

BESKRIVNING

Pakethanteringssystemet manipulerar data som anges i ett vanligt format, känt som styrinformation, lagrat i styrfiler. Styrfiler används för källkodspaket, binärpaket och filen .changes som styr installationen av insända filer (dpkg:s interna databaser är i ett liknande format).

SYNTAX

Styrfilen består av ett eller flera stycken med fält (styckena kallas ”stanza” (strof) eller ”paragraph” på engelska). Styckena avdelas av tomma rader. Tolkar kan tillåta rader som består enbart av U+0020 SPACE och U+0009 TAB som styckeavdelare, men styrfiler bör använda tomma rader. Vissa styrfiler tillåter bara ett enda stycke; andra tillåter flera, i vilket fall varje enskilt stycke vanligen gäller ett separat paket. (Till exempel, i källkodspaket gäller det första stycket för källkodspaketet, och senare stycken binärpaketen som skapats från källkoden.) Ordningen på styckena i styrfilerna har betydelse.

Varje stycke består av en följd av datafält. Varje fält består av fältnamnet följt av ett kolon (U+003A ”:”) och data/värdet som hör till fältet. Fältnamnet består av US-ASCII-tecken förutom styrtecken såsom, blanksteg och kolon (dvs. tecken i intervallen U+0021 ”!” till och med U+0039 ”9” och U+003B ”;” till och med U+007E ”~”). Fältnamn får inte börja med kommentarstecknet (U+0023 ”#”), ej heller med bindestreck (U+002D ”-”).

Fältet slutar på slutet av raden eller på slutet av den sista fortsättningraden (se nedan). Horisontella blanksteg (U+0020 SPACE och U+0009 TAB) kan förekomma direkt före eller efter värdet och ignoreras där; det är vanligt att sätta ett ensamt blanksteg efter kolontecknet. Ett fält kan till exempel vara:

 Package: dpkg

fältnamnet är Package och fältvardet dpkg.

Tomma fältvärden tillåts bara i källkodspaketets styrfiler (debian/control). Sådana fält ignoreras.

Ett stycke kan inte innehålla mer än en instans av ett specifikt fältnamn.

Det finns tre typer fält:

Fältet, och dess värde, måste vara en enkel rad. Det är inte tillåtet att dela fältet i flera delar. Det här är den förvalda fälttypen om definitionen av fältet inte anger en annan typ.
Värdet för ett flerdelat fält är en logisk rad som kan spänna över flera rader. Raderna efter den första kallas fortsättningsrader och måste börja med ett U+0020 SPACE eller en U+0009 TAB. Blanktecken, inklusive nyradstecken, har ingen betydelse i fältvärden för flerdelade fält.

Flerdelningsmetoden liknar den i RFC5322, vilket tillåter styrfiler som innehåller ett enda stycke och saknar flerradsfält att läsas av tolkar skrivna för RFC5322.

Värdet för ett flerradigt fält kan bestå av flera fortsättningsrader. Den första delen av värdet, delen på samma rad som fältnamnet, har ofta en speciell betydelse eller måste vara tom. Andra rader läggs till på samma syntax som fortsättningsrader för flerdelade fält. Blanktecken, inklusive nyradstecken, har betydelse i värdet för flerradiga fält.

Blanktecken får inte förekomma inuti namn (på paket, arkitekturer, filer eller något annat) eller versionsnummer, eller mellan tecknen i versionsberoenden bestående av flera tecken.

Närvaron och betydelsen av ett fält, och syntaxen för dess värde kan skilja mellan olika sorters styrfiler.

Fältnamn är inte skiftlägeskänsliga, men det är vanligt använda både stora och små bokstäver i fältnamnet så som visas nedan. Fältvärden är skiftlägeskänsliga såvida inte beskrivningen av fältet anger något annat.

Styckeavdelare (tomma rader) och rader som endast består av +0020 SPACE och U+0009 TAB, tillåts inte inuti fältvärden eller mellan fält. Tomma rader i fältvärden citeras vanligtvis genom att representera dem med ett U+0020 SPACE följt av en punkt (U+002E ”.”).

Rader som inleds med U+0023 ”#”, utan något tidigare blanktecken är kommentarsrader och tillåts bara i källkodspaketets styrfiler (debian/control) och i deb-origin(5)-filer. Dessa kommentarsrader ignoreras, också mellan två fortsättningsrader. De avslutar inte logiska rader.

Alla styrfiler måste använda teckenkodningen UTF-8.

SE ÄVEN

RFC822, RFC5322.

ÖVERSÄTTNING

Peter Krefting och Daniel Nylander.

2023-05-11 1.21.22