dpkg-buildpackage est votre ami. (voir aussi http://www.debian.org/doc/FAQ/ch-pk...)
Présentation
dpkg est l'outil de base qu'utilise apt : quand on fait un apt-get install, derrière, c'est dpkg qui officie.
Chacun fait certaines choses mieux que l'autre. Par exemple,
- dpkg n'a pas de sources distantes où il va interroger des dépôts de paquets (ce que fait apt, aller chercher les paquets directement sur Internet),
- par contre, dpkg gère très bien les paquets installés sur votre machine (ce que ne fait pas apt).
Pour simplifier grossièrement, apt se charge d'installer des paquets disponibles sur Internet (via les sources) et dpkg gère les paquets installés sur votre machine.
Les options
Les principales options de dpkg :
- dpkg -i nom_du_package.deb
- La commande la plus classique, elle installe un paquet qui se trouve sur votre ordinateur.
- dpkg -S fichier
- Affiche à quel paquet correspond fichier.
- dpkg -l (L minuscule) [nom_paquet]
- Liste tous les paquets installés ou ayant été installés sur votre machine. [nom_paquet] est facultatif, il faut lui renseigner le nom du paquet exact.
- dpkg -s nom_paquet
- Affiche le statut du paquet.
- dpkg -L nom_paquet
- Affiche tous les fichiers installés lors de l'installation du paquet.
- dpkg -r nom_paquet
- Supprime le paquet (sans supprimer son fichier de configuration).
- dpkg -P nom_paquet
- Supprime le paquet et ses fichiers de configuration.
Infos
Dans le dossier /var/lib/dpkg/info/ se trouvent toutes les métadonnées des packets installés avec apt.
Voici les significations des extensions :
- .list : liste des fichiers installés par le packet (dpkg -L)
- .conffile : liste des fichiers de conf
- .md5sum : md5sum de tous les fichiers du packet
- .preinst : script lancé avant installation packet
- .prerm : lancé avant effacement packet
- .config : fichier installé lors de l'installation du packet
- .shlibs : liste des bibliothèques du packet
Sauvegarde de la liste des paquets
- dpkg --get-selections > fichier.texte
- Insère, dans un fichier texte, la liste de l'ensemble des paquets présents sur votre système.
- dpkg --set-selections < fichier.texte
- Réinstalle, sur un nouveau système, l'ensemble des paquets présents dans la liste fichier.texte.
Ce qui précède permet donc de dupliquer entièrement un système. A coupler avec la sauvegarde, dans un fichier tar, de l'ensemble des fichiers de configuration de vos paquets installés :
sudo tar cf conffiles.tar $(cat /var/lib/dpkg/info/*.conffiles)