La deuxième partie est une archive contenant les fichiers et les répertoires à installer.
Dans le futur, les paquets binaires pourront contenir d'autres composants,
comme des sommes de contrôles ou des signatures numériques. Le format
de l'archive est décrit en entier dans la page du manuel deb(5)
.
De manière à créer un paquet binaire, tu dois créer une arborescence qui
contient tous les fichiers et répertoires que tu veux retrouver dans les
données du système de fichier du paquet. Dans les paquets Debian format
source, ce répertoire est habituellement debian/tmp
, par rapport à la
racine de l'arborescence du paquet source.
Ils doivent avoir l'emplacement (par rapport à la racine de l'arborescence que tu construis), le propriétaire et les permissions que tu veux leur assigner sur le système quand ils sont installés.
Dans la version courante de dpkg
, l'uid (ou nom de l'utilisateur)
et le gid (ou le nom du groupe) pour les utilisateurs et les groupes
utilisés doivent être les mêmes sur le système où le paquet est
construit et sur le système où il sera installé.
Tu dois ajouter un répertoire spécial à la racine de cette mini
arborescence que tu as créée: DEBIAN
. Il doit contenir les
fichiers de contrôle d'information, notamment le fichier de contrôle des
paquets binaires (voir Le fichier principal d'information de contrôle: control, section 2.3).
Le répertoire DEBIAN
n'apparaîtra pas dans l'archive du système
de fichiers du paquet, et ainsi ne sera pas crée quand le paquet sera
installé.
Quand tu prépares, tu dois appeler:
dpkg --build directoryCette commande construit le paquet dans directory
.deb
(dpkg
sait que --built
est une option de dpkg-deb
,
donc il appelle dpkg-deb
avec les mêmes arguments pour construire
le paquet.)
Voir les pages de manuel dpkg-deb(8)
sur les détails pour savoir comment examiner le contenu de ce fichier
fraîchement créé.
Tu trouveras les sorties des commandes suivantes intéressantes:
dpkg-deb --info nomdefichier.deb dpkg-deb --contents nomdefichier.deb dpkg --contents nomdefichier.debPour voir le fichier copyright d'un paquet, tu peux utiliser la commande:
dpkg --fsys-tarfile nomdufichier.deb | tar xof usr/doc/\*copyright | less
dpkg
.
Il traitera le contenu de ces fichiers d'une manière spéciale -
certains d'entre eux contiennent des informations utilisées par
dpkg
quand il installe ou enlève le paquet; les autres sont des
script que le mainteneur du paquet veut que dpkg
exécute.Il est possible de mettre d'autres fichiers dans la zone de contrôle du paquet, mais ce n'est pas généralement une bonne idée (de toute façon ils seront ignorés).
Voici une liste brève de fichiers d'information de contrôle utilisés par
dpkg
et un résumé de ce qu'ils fonts.
control
dpkg
. Il
spécifie le nom et la version du paquet, donne sa description pour les
utilisateur, établit les relations avec les autres paquets, etc.
Voir Le fichier principal d'information de contrôle: control, section 2.3.
Il est habituellement généré automatiquement à partir des informations
du paquet source par le programme dpkg-gencontrol
et avec l'aide
de dpkg-shlibdeps
. Voir Les outils pour manipuler les paquets sources, section 3.1.
postinst, preinst, postrm, prerm
dpkg
démarre pendant l'installation, la mise à jour ou
l'effacement des paquets. Ils permettent au paquet de traiter les choses
qui lui sont particulières ou qui nécessitent un traitement plus
compliqué que celui fourni par dpkg
. Les détails de quand et
comment ils sont appelés, sont indiqués dans les scripts de maintenance
des paquets et la procédure d'installation voir Script de maintenance de paquet et procédure d'installation, chapter 6.
Il est très important de rendre ces scripts idempotents
[2].
Si une erreur survient, l'utilisateur interrompt dpkg
ou si
d'autres problèmes se produisent, tu ne laisses pas l'utilisateur avec
un paquet inutilisable.
Les scripts de maintenance sont garantis pour fonctionner avec un
terminal de contrôle et peuvent interagir avec l'utilisateur. S'ils ont
besoins de demander les mots de passe, utilise une interaction plein
écran ou quelque chose de similaire, tu dois faire cela vers et à partir
de /dev/tty
, étant donné que dpkg
redirigera à certains
points les entrées/sorties standards du script afin d'enregistrer la
procédure d'installation. Cependant, car ces scripts doivent être
exécutés sur la sortie standard redirigée dans un tube pour les besoins
d'enregistrement, les scripts Perl doivent être non bufférisés en sortie
en indiquant $|=1
afin que la sortie soit imprimée immédiatement
plutôt que d'être bufférisé.
Chaque script doit retourner zéro pour un succès ou autre chose que zéro pour un échec.
conffiles
dpkg
(voir Manipulation des fichiers de configuration, chapter 9).
Note que tous les fichiers de configuration ne sont pas forcément listés
ici.
shlibs
dpkg-shlibdeps
quand il détermine quelles dépendances sont
nécessaires dans un fichier de contrôle de paquet. Le format du fichier
shlibs
est décrit dans Le format du fichier shlibs
, section 12.1.
dpkg
quand il installe un paquet est control
. Il contient
toutes les statistiques vitales du paquet.
Les fichiers d'information de contrôle des paquets binaires construits
à partir des sources Debian sont faits par un outil spécial dpkg-
gencontrol
qui lit debian/control
et debian/changelog
pour trouver les informations dont il a besoin.
voir Les paquets sources, chapter 3 pour plus de détails.
Les champs dans les fichiers de contrôle des paquets binaires est:
Package
Version
Architecture
Depends, Provides
Essential
Maintener
Section, Priority
Source
Description
Installed-Size