deb - Format des paquets binaires Debian
nom-du-fichier.deb
Le format
.deb est le format des paquets binaires de Debian. Il est
compatible depuis la version 0.93.76 de dpkg, et il est
généré par défaut depuis les versions 1.2.0
de dpkg et 1.1.1elf (constructions i386/ELF).
Le format décrit ici est utilisé depuis la version 0.93 de Debian
; les détails concernant le vieux format sont consultables dans
deb-old(5).
Ce fichier est une archive
ar avec une valeur magique de
!<arch>. Seul le format commun
ar est géré,
sans extension pour les noms longs de fichiers, mais avec optionnellement un
caractère « / » final, ce qui limite leur
longueur utile à 15 caractères (sur les 16 autorisés).
Les tailles de fichiers sont limitées à 10 chiffres
décimaux ASCII, ce qui permet d'utiliser des fichiers membres d'une
taille jusqu'à environ 9536,74 Mio.
Les archives
tar actuellement gérées sont le
format v7 d'origine, le format ustar pré-POSIX, un sous-ensemble
du format GNU (uniquement le nouveau format de noms longs pour les chemins et
les liens, gérés depuis dpkg 1.4.1.17 ;
« large file metadata » depuis
dpkg 1.18.24) et le format ustar POSIX (noms longs gérés
depuis dpkg 1.15.0). Les marqueurs tar
(« typeflags ») inconnus provoquent une erreur. La
taille de chaque entrée dans une archive tar est limitée
à 11 chiffres en octal ASCII ce qui permet d'utiliser des
entrées tar d'une taille jusqu'à 8 Gio. La gestion des
« large file metadata » de GNU permet des
entrées tar 95 bits et des horodatages négatifs, ainsi
que des numéros de 63 bits d'UID, GID et de
périphériques.
Le premier membre est nommé
debian-binary et contient une
succession de lignes, séparées par des caractères saut de
ligne. Pour le moment, une seule ligne est présente : le
numéro de version du format,
2.0 à l'heure où ce
document a été écrit. Les programmes lisant des archives
Debian récentes doivent être préparés à une
augmentation du numéro de version mineur et à la présence
de nouvelles lignes, et doivent les ignorer si tel est le cas.
Si le numéro de version majeur a changé, cela signifie qu'une
modification entraînant une incompatibilité entre les versions a
été effectuée, et le programme doit alors
s'arrêter. Si ce n'est pas le cas, le programme doit être en
mesure de continuer à traiter correctement le fichier, à moins
qu'il ne rencontre un membre non reconnu dans l'archive (excepté
à la fin de cette dernière), comme décrit ci-dessous.
Le second membre requis est nommé
control.tar. Il s'agit d'une
archive tar contenant les informations de contrôle du paquet, soit non
compressée (gérée depuis dpkg 1.17.6) ou
compressée grâce à gzip (avec extension
.gz), xz
(avec extension
.xz, gérée depuis dpkg 1.17.6) ou
zstd (avec extension
.zst, gérée depuis
dpkg 1.21.18), sous la forme d'une série de fichiers simples,
parmi lesquels le fichier
control est strictement requis et contient
les principales informations de contrôle, les fichiers
md5sums,
conffiles,
triggers,
shlibs et
symbols qui
contiennent des informations de contrôle optionnelles, et les fichiers
preinst,
postinst,
prerm et
postrm qui sont des
scripts optionnels du responsable. L'archive de contrôle peut
éventuellement contenir une entrée pour
« . », le répertoire courant.
Le troisième et dernier membre obligatoire est appelé
data.tar. Il contient le système de fichiers sous forme d'une
archive tar, soit non compressée (gérée depuis
dpkg 1.10.24) ou compressée avec gzip (avec extension
.gz), xz (avec extension
.xz, gérée depuis
dpkg 1.15.6), zstd (avec extension
.zst, gérée
depuis dpkg 1.21.18), bzip2 (avec extensions
.bz2,
gérée depuis dpkg 1.10.24) ou lzma (avec extension
.lzma, gérée depuis dpkg 1.13.25).
Ces membres doivent apparaître dans cet ordre exact. Les
implémentations actuelles devraient ignorer tout membre additionnel
après
data.tar. D'autres membres seront éventuellement
proposés, et (si possible) seront placés après ces trois
derniers. Tout autre membre qui nécessitera d'être
inséré après
debian-binary et avant
control.tar ou
data.tar et qui pourra être ignoré
sans problème par des programmes plus anciens, aura un nom
commençant par un caractère de soulignement, «
_ ».
Les nouveaux membres qui ne pourront pas être ignorés sans
conséquence seront insérés avant
data.tar avec des
noms préfixés par quelque chose d'autre qu'un caractère
de soulignement, ou impliqueront plus probablement une incrémentation
du numéro majeur de version.
application/vnd.debian.binary-package
application/x-debian-package
application/x-deb
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).
Ariel VARDI <
[email protected]>, 2002. Philippe Batailler, 2006.
Nicolas François, 2006. Veuillez signaler toute erreur à
<
[email protected]>.