dpkg : le gestionnaire de paquets bas niveau de Ubuntu

dpkg (pour Debian package) est l'outil de bas niveau gérant les paquets des distributions basées sur Debian. Indispensable au bon fonctionnement d'Ubuntu, cet outil est intégré de base dans toutes ses versions et variantes.
Utilisable en ligne de commande, il est chargé de l'installation, la suppression et la gestion des paquets Debian (.deb), le type de paquets traités par Ubuntu. Il permet aussi la gestion de paquets Debian en provenance de sources extérieures aux dépôts APT.

Pré-requis

  • Disposer d'une connexion à Internet configurée et activée.
  • Disposer de quelques notions d'utilisation d'un terminal.

Utilisation

À la différence de la commande apt-get, de la Logithèque, ou de GDebi, dpkg est un outil qui ne gère pas les dépendances. Ainsi en cas de conflit ou bien lorsque seuls certains paquets impliquant trop de dépendances font défaut, l'utilisation de cet outil devient presque indispensable. Synaptic et d'autres gestionnaires de paquets utilisent justement cet outil pour résoudre certains problèmes caractéristiques.
Il permet donc de 'jouer' sur un seul paquet (installation, suppression, reconfiguration ) sans bouleverser les dépendances.

Parmi ses autres fonctions, dpkg permet aussi d'avoir des informations précises telles que l'état ou la description détaillée, des paquets disponibles.

Installation de paquets

Quelques commandes utilisées pour installer les paquets:

  • L'option -i, ou --install, installe le ou les paquets indiqués, au format .deb.
    sudo dpkg -i <paquet.deb>
  • L'option -R, ou --recursive (associée à -i), installe tous les paquets se trouvant dans le répertoire de travail et ses sous-répertoires:
    sudo dpkg -i -R *.deb

dpkg ne gère pas les dépendances, il faut ensuite, pour compléter l'installation d'une application possédant des dépendances, exécuter dans un terminal la commande:

sudo apt-get -f install

Cette commande installera les dépendances. et terminera l'installation du programme.

Installer un programme dans un dossier spécifique à partir de paquets standards

Créer un dossier et se placer à l'intérieur. ( mon_dossier_qui_va_bien ) par exemple.

Installer les paquets avec dpkg-deb :

for i in [chemin vers **mon_dossier_qui_va_bien**]/DEBS/*.deb; do dpkg-deb -x $i . ; done

Tout se retrouve à l'intérieur de mon_dossier_qui_va_bien, chercher les exécutables pour lancer/faire des raccourcis vers les programmes.

Suppression

  • sudo dpkg -r nom_du_paquet

    L'option -r ou --remove supprime le (ou les) paquet(s) indiqué(s) mais pas les fichiers de configuration associés au(x) paquet(s).

  • sudo dpkg -P nom_du_paquet

    L'option -P ou --purge permet de supprimer les fichiers de configuration associés en même temps que le paquet indiqué.

  • sudo dpkg --force-all --purge nom_du_paquet

    L'usage des options --force-all et --purge permet de forcer la désinstallation du paquet et de supprimer les fichiers de configuration associés.

Cette dernière commande est utile, mais risquée, et permet de forcer la suppression d'un paquet et, normalement, celle de ses fichiers de configuration (sauf, notamment, si on en a modifié ou ajouté…) quand par la méthode normale cela bloque les processus de gestion apt.

Lister

  • dpkg -l chaîne

    L'option -l, ou --list, effectue une recherche et affiche une liste des paquets satisfaisant un motif de recherche.

  • dpkg -S fichier

    L'option -S, ou --search, affiche tous les paquets contenant le fichier indiqué en tant que critère de recherche.

Vérifier la présence d'un paquet

utiliser dpkg -l comme ci-dessus conduit à une liste très longue. Si vous souhaitez simplement vérifier la présence d'un paquet ajouter tout ou partie du nom du paquet éventuellement suivi (voir précédé) de * :

dpkg -l nom_du_paquet

exemple :

dpkg -l *office*

liste tous les paquets liés à libreoffice et openoffice

Les deux premiers caractères à gauche vous donnent des indications sur l'état du paquet
Première colonne : souhait
i : Install (à installer)
r : Remove (à supprimer)
u : Unknown (inconnu)
p : Purge (à supprimer avec les fichiers de configuration)
h : Hold (à conserver)
Seconde colonne : état
i : Installed (installé)
c : Config-files (fichier(s) de configuration existant)
u : Unpacked (dé-compressé)
n : Not Installed (non installé)
f : Failed-config (problème de configuration)
h : Half-installed (installé partiellement)

pkg-config

pkg-config permet, notamment pour les développeurs, de récupérer le chemin où a été installé une librairie. Ainsi, si on tape en ligne de commande:

pkg-config --cflags --libs libpng

cela retourne :

-I/usr/include/libpng12 -lpng12

qui correspond à la syntaxe pour inclure cette librairie pour la compiler et la lier à un programme avec le compilateur gcc
L'utilisation classique est donc:

gcc -o test test.c $(pkg-config --libs --cflags libpng)

Ces informations sont contenues dans des fichiers .pc recherchés dans différents répertoires, voici comment savoir où:

pkg-config --variable pc_path pkg-config

Références