I. de quoi un package debian est-il composé
Techniquement parlant, un package debian (un .deb) est une archive (au même titre qu'un .gz, un .bz2...), interesson
nous plutôt à son contenu "global":
Un package est avant tout constitué d'un ensemble de fichiers qui vont s'installer sur votre système, ensemble de
fichiers qui peut être souvent le résultat d'un "make install", sauf que dans le cas présent les fichiers sont
installée "dans le .deb", et vont être installés sur le système lors de l'installation du .deb.
Ensuite, un package est également constitué de certaines informations utiles au système, tel que dépendances (par
exemple, gnome a besoin de libgnome pour fonctionner), version du package, description etc...
Prenons un exemple simple:
$ aptitude download hello
ceci va avoir pour effet de simplement télécharger le paquet binaire "hello", on se retrouve donc avec par exemple le
fichier hello_2.1.1-4_i386.deb.
Maintenant, regardons ce qu'il contient:
$ dpkg -c hello_2.1.1-4_i386.deb
on peut y voir dans un premier temps un binaire, fichier exécutable placé dans /usr/bin
En effet, installez hello (sudo aptitude install hello) et tapez 'hello' dans votre terminal.
$ hello
Bonjour, le monde!
Ensuite, regardons la suite du dpkg -c, on peut y voir /usr/share/man/man1/hello.1.gz
Ceci est une manpage, ce que vas regarder la commande 'man' pour afficher des informations sur un programme, par
exemple dans votre console tapez 'man hello' (q pour quitter man).
Ensuite, on peut voir plusieurs fichier dans /usr/share/doc/hello, qui sont NEWS, copyright, changelog.gz et
changelog.debian.gz
'NEWS' est un fichier issu des sources du programme hello, que le packageur a dessidé d'installer dans le répertoire
des docs (répertoire /usr/share/doc/<package>), les fichiers copyright et changelog.Debian.gz sont quant à eux écrit
par le packageur, nous verrons ce que contiennent ces fichiers plus tard. Enfin, changelog.gz est le changelog des
sources de hello, issu tout comme NEWS des sources de hello.
les autres fichiers sont hello.info.gz (globalement la même chose que man) et des fichiers de traduction
(/usr/share/locales/...), ils ne nous interessent pas ici.
Passons maintenant aux informations sur le paquet hello:
$ dpkg -f hello_2.1.1-4_i386.deb
on peut y voir les informations suivantes:
Package: nom du paquet binaire
Version: numéro de version du paquet
Section: 'catégorie' du paquet
Priority: priorité
Architecture: architecture pour laquelle est buildé ce .deb
Depends: dépendances du paquet, ici hello a besoin du paquet 'libc6' pour fonctionner, il dépend donc de libc6
Installed-Size: taille une fois installé sur le système
Maintainer: responsable et probablemen packageur du paquet
Description: description du paquet.
Parfait, passons à la pratique maintenant
créez vous un petit répertoire de travail, mkdir classroom && cd classroom
téléchargez l'application 'classroom'
$ wget -c http://people.dunnewind.net/arthur/classroom-0.1.tar.gz