deb822(5) | dpkg suite | deb822(5) |
deb822 - Debians RFC822-styrdataformat
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).
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:
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.
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.
RFC822, RFC5322.
Peter Krefting och Daniel Nylander.
2023-05-11 | 1.21.22 |