dpkg
manipulent les données dans
un format commun, connu sous le nom de fichiers de contrôle.
Les paquets source et binaire ont des données de contrôle comme les
fichiers .changes
qui contrôlent l'installation et le chargement
des fichiers, et les bases de données internes à dpkg
sont dans
un format similaire.
Chaque paragraphe est une série de champs et de valeurs; chaque champ est constitué d'un nom, suivi par deux-points et la valeur. Il se termine à la fin de la ligne. Les espaces horizontaux (espaces et tabulations) peuvent apparaître avant ou après la valeur et sont ignorés; par convention, il y a un espace après les deux-points.
Certaines valeurs de champs peuvent s'étaler sur plusieurs lignes; dans ce cas, chaque continuation de ligne doit commencer par un espace ou une tabulation. N'importe quels espaces ou tabulations à la fin des lignes d'un champ de valeur est ignoré.
Sauf où cela est indiqué, seulement une simple ligne de données est autorisée et les espaces ne sont pas significatifs dans un corps de champ. Les espaces ne doivent jamais apparaître dans les noms (de paquets, d'architectures, de fichiers, etc), dans les numéros de version ou entre les caractères des relations de version.
Les lignes vides ou les lignes contenant seulement des espaces ou des tabulations ne sont pas autorisées à l'intérieur des champs de valeur ou entre les champs - ce qui marqueraient un nouveau paragraphe.
Il est important de noter qu'il y a plusieurs champs qui sont optionnels
tant que dpkg
et les outils associés sont concernés, mais qui
doivent apparaître dans chaque paquet Debian, ou dont l'omission peut
entraîner des problèmes. Quand tu écrits des fichiers de contrôle pour
les paquets Debian, tu dois lire le manuel des principes Debian en même
temps que les détails ci-dessous et la liste des champs pour un fichier
particulier.
Package
+ - .
(plus, moins, point).
[14]Ils doivent contenir au moins deux caractères et commencer par un caractère alphanumérique. Dans la version courante de dpkg, ils sont triés par ordre alphabétique en tenant compte des majuscules [15]; utilise des noms de paquets en minuscule à moins que le paquet que tu construis (ou est référencé dans d'autres champs) utilise déjà des majuscules.
Version
Architecture
dpkg
vérifiera l'architecture déclarée d'un paquet binaire avec
sa propre valeur in situ avant de l'installer.
La valeur spéciale all
indique que le paquet est indépendant de
l'architecture.
Dans le fichier principal debian/control
du paquet source, ou dans
le fichier de contrôle des paquets sources .dsc
, une liste des
architectures (séparée par des espaces) est aussi autorisée, tout comme
la valeur spéciale any
.
Une liste indique que le source construira un paquet dépendant de
l'architecture, et fonctionnera correctement seulement sur les
architectures listées. any
indique que même si le paquet source
n'est pas dépendant d'une architecture particulière et devrait bien se
compiler sur n'importe laquelle, les paquets binaires produits ne sont
pas indépendants des architectures mais sera par contre spécifique à
l'architecture courante de construction.
Dans un fichier .changes
, le champ Architecture
liste la
ou les architectures des paquets qui sont chargés. Ce sera une liste; si
le source du paquet est aussi chargé, l'entrée spéciale source
est aussi présent.
L'architecture courante de construction peut être déterminée en
utilisant dpkg --print-architecture
[16].
Cette valeur est automatiquement utilisée par dpkg-gencontrol
quand il construit le fichier de contrôle pour un paquet binaire pour
lequel les informations de contrôle source ne spécifient pas
l'architecture all
.
Il existe une option à part, --print-installation-architecture
,
pour trouver quelle architecture, dpkg
est prêt à installer.
Cette information est aussi dans la sortie de dpkg --version
.
Maintener
.changes
ou les données analysées de
changelog contiennent le nom et l'adresse électronique de la personne
responsable de cette version particulière en question - ce n'est pas
forcément le mainteneur habituel du paquet.
Ce champ est habituellement optionnel tant qu'il concerne dpkg
,
mais son absence génère généralement un avertissement lors de la
construction de paquets.
Source
Dans un fichier principal d'information de contrôle de source ou dans un
fichier .changes
ou dans un fichier .dsc
ou dans les
données analysées de changelog, ceci peut seulement contenir le nom du
paquet source.
Dans un fichier de contrôle d'un paquet binaire (ou dans un fichier
Packages
), il peut être suivi par un numéro de version entre
parenthèses[17].
Ce numéro de version peut être omis (et l'est par dpkg-
gencontrol
) s'il a la même valeur que le champ Version
du
paquet binaire en question. Le champ lui-même peut être omis d'un
fichier de contrôle d'un paquet binaire quand le paquet source possède
le même nom et la même version que le paquet binaire.
Depends, Pre-Depends,
Recommends, Suggest, Conflicts, Provides, Replaces
Packages
ou le fichier
principal de contrôle du source, ce champs contient une description du
paquet binaire, dans un format spécial. Voir Description des paquets - le champ Description
, chapter 7
pour les détails.
Dans un fichier .changes
, il contient un résumé de la description
des paquets chargés. La partie du champ avant la première nouvelle ligne
est vide; ensuite chaque ligne possède le nom d'un paquet binaire et la
ligne de résumé de la description de ce paquet binaire.
Chaque ligne est indentée par un espace.
Packages
) ou
dans un paragraphe de champs par paquet d'un fichier principal de
données de contrôle de source.
S'il est positionné à yes
alors dpkg
et dselect
refuseront d'enlever ce paquet (bien qu'il puisse être mis à niveau
et/ou déplacer). L'autre valeur possible est no
, ce qui est la
même chose que de n'avoir pas de champ du tout.
Priority
représente
l'importance du paquet installé; la Section
représente un zone
d'application dans laquelle le paquet a été classifiée.
Quand ces champs apparaissent dans le fichier debian/control
, ils
donnent les valeurs des sous-champs priorité et section du champ
Files
du fichier .changes
, et donnent les valeurs par
défaut de la section et de la priorité pour les paquets binaires.
La section et la priorité sont représentées, même pas comme des champs
séparés, dans les informations pour chaque fichier dans le champ
Files
d'un fichier .changes
. La valeur de la section dans
un fichier .changes
est utilisée pour décider où sera installé le
paquet dans une archive FTP.
Ces champs ne sont pas utilisés par dpkg
, mais par dselect
quand il trie les paquets et sélectionne la valeurs par défaut. Voir le
manuel des principes Debian pour les priorités en usage et les critères
pour sélectionner les priorités pour les paquets Debian, et regarde une
archive FTP Debian pour obtenir une liste des priorités courantes.
Ces champs peuvent apparaître dans les fichiers de contrôle des paquets
binaires, dans ce cas, ils fournissent une valeur par défaut au cas où
les fichiers Packages
ne possèdent pas l'information. dpkg
et dselect
n'utiliseront seulement la valeur d'un fichier
.deb
que s'ils n'ont pas d'autres informations; une valeur listée
dans un fichier Packages
sera toujours prioritaire.
Par défaut dpkg-genchanges
n'inclut pas la section et la priorité
dans le fichier de contrôle d'un paquet binaire - utilise les options
-isp, -is
ou -ip
pour réaliser cette opération.
Quand il apparaît dans un fichier .dsc
, il représente la liste
des paquets binaires qu'un paquet source peut produire.
Il ne produit pas nécessairement tous ces paquets binaires pour chaque
architecture. Le fichier de contrôle source ne contient pas les détails
sur les architectures qui sont les plus appropriées pour les paquets
binaires.
Quand il apparaît dans un fichier .changes
, il liste les noms des
paquets binaires actuellement chargés.
La syntaxe est une liste de paquets binaires séparée par des
virgules[18].
Actuellement, les paquets doivent être séparés en utilisant seulement
des espaces dans le fichier .changes
.
Packages
. Il donne la capacité totale du disque
nécessaire pour installer le dit paquet.L'espace disque est représenté en Kilo-octets comme un nombre décimal simple.
Dans le fichier .dsc
(contrôle des sources Debian), chaque ligne
contient la somme de contrôle MD5, la taille et le nom du fichier tar et
(éventuellement) le fichier diff qui représente le reste du paquet
source[19].
Les formes exactes des noms de fichier sont décrites dans
Les paquets sources comme archives, section 3.3.
Dans le fichier .changes
, il contient une ligne par fichier
chargé. Chaque ligne contient la somme de contrôle, la taille, la
section et la priorité et le nom du fichier. La section et la priorité
sont les valeurs des champs correspondants dans le fichier principal de
contrôle source - voir Section et Priority, subsection 4.2.9.
Si aucune section ou
priorité n'est spécifiée alors -
doit être utilisé, bien que les
valeurs de section et de priorité doivent être spécifiées pour installer
proprement les nouveaux paquets.
La valeur spéciale byhand
pour la section dans un fichier
.changes
indique que le fichier en question n'est pas un fichier
ordinaire de paquet et doit être installé à la main par les mainteneurs
de la distribution. Si la valeur de la section est byhand
alors
la valeur de la priorité devrait être -
.
Si une nouvelle révision Debian d'un paquet est chargée et qu'aucune
archive originale source n'est distribuée, le fichier .dsc
doit
toujours contenir l'entrée du champ Fields
pour l'archive
originale source package-upstream-version.orig.tar.gz
mais
le fichier .changes
devrait l'omettre. Dans ce cas, l'archive
originale source sur le site de distribution doit être exactement, octet
par octet, l'archive originale source qui a été utilisée pour générer le
fichier .dsc
et le fichier diff qui a été chargé.
Son format est le même que le numéro de version sauf que epoch et la révision Debian ne sont pas autorisés - voir Numérotation des versions, chapter 5.
.changes
ou dans la sortie analysée de changelog,
ce champ contient le ou les noms (séparés par des espaces) de la ou les
distributions où cette version du paquet devrait être ou a été
installée. Les noms de distribution suivent les règles des noms de
paquets (voir Package
, subsection 4.2.1).Les valeurs des distributions courantes sont:
LOW, MEDIUM
ou HIGH
suivi par un commentaire optionnel (séparé par un espace) qui est
généralement entre parenthèses. Par exemple:
Urgency: LOW (HIGH for diversions users)Ce champ apparaît dans le fichier
.changes
et dans les changelogs
analysées; sa valeur apparaît comme valeur de l'attribut urgency
dans le changelog de dpkg
-style (voir debian/control
, subsection 3.2.2).Les mots-clé ne sont pas sensibles au majuscule/minuscule.
.changes
et les changelogs analysés, ce champ donne
la date de la construction de paquet ou de la dernière édition.
.changes
, et spécifie une
révision de format pour le fichier. Le format décrit ici est la version
1.5
. La syntaxe de la valeur du format est la même que la
numérotation de la version des paquets, sauf que epoch et la révision
Debian ne sont pas autorisés - voir Numérotation des versions, chapter 5.
.changes
ou dans un changelog analysé, ce champ
contient les données lisibles des changements, décrivant les différences
entre la dernière version et celle courante.Il ne doit rien y avoir dans ce champ avant le première nouvelle ligne; toutes les lignes suivantes doivent être indentées par au moins un espace; les lignes vides doivent être représentées par une ligne contenant seulement un espace et un point.
Chaque information de changement de version doit être précédée par une ligne de 'titre' donnant au moins la version, la ou les distributions et l'urgence, d'une façon lisible.
Si les données de plusieurs versions sont retournées, l'entrée de la plus récente version doit être retournées d'abord, et les entrées doivent être séparées par une ligne vide (la ligne de 'titre' peut aussi être suivi par une ligne vide).
Packages
donnent les noms de
fichiers d'un paquet dans une distribution, par rapport à la racine de
la hiérarchie Debian. Si le paquet a été découpé en plusieurs morceaux,
les parties sont toutes listées dans l'ordre, séparées par des espaces.
Packages
donnent la taille (en
octets, exprimée en décimal) et la somme de contrôle MD5 du ou des
fichiers qui composent le paquet de la distribution. Si le paquet est
découpé en plusieurs parties, les valeurs pour ces parties sont listées
dans l'ordre, séparées par des espaces.
dpkg
enregistre si
l'utilisateur veut un paquet installé, enlevé ou laissé tout seul, si il
est incorrect (nécessite une réinstallation) ou non et son état courant
sur le système. Chaque morceau de ces informations est un simple mot.
dpkg
enregistre la dernière version de ce
paquet qui a été configuré avec succès.
dpkg
contient les informations
sur les fichiers de configuration automatiquement gérés maintenus par un
paquet. Ce champ ne doit pas apparaître n'importe où dans un
paquet!
dpkg
mais ne doivent plus
apparaître n'importe où.
Recommends
.
Suggests
.
Priority
.