deb(5) | dpkg suite | deb(5) |
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 <ariel.vardi@freesbee.fr>, 2002. Philippe Batailler, 2006. Nicolas François, 2006. Veuillez signaler toute erreur à <debian-l10n-french@lists.debian.org>.
2023-05-11 | 1.21.22 |