All pastes #616054 Raw Edit

Stuff

public text v1 · immutable
·published 2007-07-12 12:56 UTC
rendered paste body
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