deb(5)

NAAM
deb - Binair pakketformaat van Debian

OVERZICHT
bestandsnaam.deb

BESCHRIJVING
Het .deb-formaat is de indeling van een binair pakketbestand in Debian. Sinds dpkg 0.93.76 kan ermee gewerkt worden en standaard wordt ze gegenereerd sinds dpkg 1.2.0 en 1.1.1elf (i386/ELF-compilaties).

De hier beschreven indeling wordt gebruikt sinds Debian 0.93; de oude indeling wordt gedetailleerd beschreven in deb-old(5).

INDELING
Het bestand is een ar-archief met een magische waarde van !<arch>. Enkel de gewone ar-archiefindeling wordt ondersteund zonder lange bestandsnaamextensies, maar met bestandsnamen met facultatief een afsluitende slash, wat de lengte ervan beperkt tot 15 lettertekens (van de 16 die toegelaten zijn). De grootte van bestanden is beperkt tot 10 ASCII decimalen, waardoor tot ongeveer 9536.74 MiB aan bestandselementen toegelaten is.

De volgende tar-archieven zijn momenteel toegestaan:

•   oude stijl (v7) indeling

•   pre-POSIX ustar-indeling

•   subset van de GNU-indeling

    Nieuwe stijl lange padnamen en lange linknamen, ondersteund sinds dpkg 1.4.1.17; grote bestandsmetadata sinds dpkg 1.18.24.

•   POSIX ustar-indeling

    Lange namen ondersteund sinds dpkg 1.15.0.

Niet-herkende tar-typevlaggen worden als een fout beschouwd. Binnen een tar-archief is de grootte van elk item standaard beperkt tot 11 ASCII octale cijfers, hetgeen tot maximaal 8 GiB aan tar-items mogelijk maakt. De ondersteuning voor uitgebreide bestandsmetadata in de GNU-indeling maakt een grootte mogelijk van 95 bits voor een tar-item, negatieve tijdstempels en UID-, GID- en apparaatnummers van 63 bits, wat neerkomt op praktisch onbeperkte waarden.

Het ar-archief is samengesteld uit meerdere elementen in een specifieke volgorde:

debian-binary
    Het eerste verplichte element bevat een aantal regels, gescheiden door regeleinden. Momenteel, op het moment van het schrijven van deze man-pagina, heeft dit slechts één regel, het versienummer van de indeling, 2.0. Programma's die archieven lezen in de nieuwe indeling, moeten erop voorbereid zijn dat het onderversienummer verhoogd wordt en dat er nieuwe regels aanwezig kunnen zijn. En als dat het geval is, moeten ze die negeren.

    Indien het hoofdversienummer gewijzigd werd, werd een niet-compatibele wijziging gemaakt en zou het programma moeten stoppen. Indien dit niet het geval is, dan zou het programma in staat moeten zijn probleemloos voort te gaan, tenzij het in het archief (behalve op het einde) een onverwacht element tegenkomt, zoals hierna beschreven wordt.

control.tar
    Het tweede verplichte element is een tar-archief dat de pakketmetadata bevat.

    Het kan de volgende compressiemethoden gebruiken:

    •   geen (ondersteund sinds dpkg 1.17.6)

    •   gzip (met de extensie .gz)

    •   xz (met de extensie .xz, ondersteund sinds dpkg 1.17.6)

    •   zstd (met de extensie .zst, ondersteund sinds dpkg 1.21.18)

    Het bevat een reeks gewone bestanden:

    control
        Verplichte controle-informatie, in de indeling deb822(5).

    md5sums
    conffiles
    triggers
    shlibs
    symbols
        Optionele pakketmetadata.

    preinst
    postinst
    prerm
    postrm
        Optionele pakketbeheerdersscripts.

    De controle-tarball kan optioneel een vermelding bevatten voor ‘.’, de huidige map.

data.tar
    Het derde en laatste verplichte element bevat het bestandssysteem als een tar-archief.

    Het kan de volgende compressiemethoden gebruiken:

    •   geen (ondersteund sinds dpkg 1.10.24)

    •   gzip (met de extensie .gz)

    •   xz (met de extensie .xz, ondersteund sinds dpkg 1.15.6)

    •   zstd (met de extensie .zst, ondersteund sinds dpkg 1.21.18)

    •   bzip2 (met de extensie .bz2, ondersteund sinds dpkg 1.10.24)

    •   lzma (met de extensie .lzma, ondersteund sinds dpkg 1.13.25)

Deze elementen moeten exact in deze volgorde voorkomen. Huidige implementaties moeten eventuele bijkomende elementen na data.tar negeren. Het kan zijn dat in de toekomst meer elementen gedefinieerd worden, die (zo mogelijk) na deze drie geplaatst zullen worden. Eventuele bijkomende elementen die ingevoegd zouden moeten worden na debian-binary en voor control.tar of data.tar en die door oudere programma's probleemloos genegeerd zouden moeten worden, zullen namen krijgen die beginnen met een laag liggend streepje, ‘_’.

Nieuwe elementen die niet probleemloos genegeerd zullen mogen worden, zullen ingevoegd worden voor data.tar en zullen namen hebben die met iets anders dan een laag liggend streepje beginnen, of (wat waarschijnlijker is) zullen tot gevolg hebben dat het hoofdversienummer verhoogd wordt.

MEDIATYPE

  Huidig
application/vnd.debian.binary-package

  Verouderd
application/x-debian-package

application/x-deb

ZIE OOK
deb-old(5), dpkg-deb(1), deb-control(5), deb-conffiles(5), deb-md5sums(5), deb-triggers(5), deb-shlibs(5), deb-symbols(5), deb-preinst(5), deb-postinst(5), deb-prerm(5), deb-postrm(5).