Aller au contenu

Dpkg

De Marmits Wiki

dpkg sur Debian : Le Gestionnaire de Paquets de Base

dpkg (Debian Package) est l’outil fondamental pour gérer les paquets .deb sur Debian et ses dérivés (Ubuntu, Mint, etc.). Contrairement à apt (qui gère les dépendances et les dépôts), dpkg agit directement sur les paquets installés ou locaux.



1. À Quoi Sert dpkg ?

  • Installer/désinstaller des paquets .deb (sans résoudre les dépendances).
  • Lister les paquets installés.
  • Inspecter le contenu d’un paquet.
  • Vérifier l’état des paquets (installé, configuré, etc.).

⚠️ Attention : dpkg ne gère pas les dépendances automatiquement. Utilisez apt pour une gestion plus sûre.


2. Commandes de Base

(A) Installer un paquet .deb

sudo dpkg -i paquet.deb  # Installe le paquet (mais ignore les dépendances)

Si des dépendances manquent :

sudo apt-get install -f  # Corrige les dépendances manquantes après dpkg -i

(B) Désinstaller un paquet

sudo dpkg -r nom-du-paquet  # Désinstalle le paquet (mais garde les fichiers de config)
sudo dpkg -P nom-du-paquet  # Désinstalle + supprime les fichiers de config

(C) Lister les paquets installés

dpkg -l                     # Liste tous les paquets
dpkg -l | grep firefox      # Filtre un paquet spécifique

(D) Vérifier si un paquet est installé

dpkg -s nom-du-paquet       # Affiche l'état (installé, version, dépendances)

(E) Lister les fichiers d’un paquet

dpkg -L nom-du-paquet       # Affiche tous les fichiers installés par le paquet

(F) Trouver à quel paquet appartient un fichier

dpkg -S /chemin/du/fichier  # Ex: dpkg -S /bin/ls

(G) Vérifier l’intégrité d’un paquet

dpkg --audit                # Détecte les paquets mal installés

3. Différence entre dpkg et apt

Fonctionnalité dpkg apt
Installe depuis un fichier .deb ✅ (dpkg -i) ❌ (utilise apt install ./paquet.deb)
Gère les dépendances ❌ (erreur si dépendances manquantes) ✅ (résout automatiquement)
Utilise les dépôts en ligne
Met à jour le système ✅ (apt update && apt upgrade)
Affiche les paquets installés ✅ (dpkg -l) ✅ (apt list --installed)



4. Cas d’Usage Typiques

(A) Installer un paquet téléchargé manuellement

sudo dpkg -i ~/Télécharges/paquet.deb
sudo apt-get install -f  # Résout les dépendances

(B) Réparer un paquet cassé

sudo dpkg --configure -a  # Termine les configurations interrompues

(C) Sauvegarder la liste des paquets installés

dpkg --get-selections > liste-paquets.txt

5. Précautions

  • N’utilisez pas dpkg -i pour les mises à jour système (préférez apt upgrade).

  • Si dpkg bloque à cause d’un paquet défectueux :

    sudo dpkg --remove --force-remove-reinstreq nom-du-paquet
    

6. Commandes utiles

voir tous les paquets

dpkg --list

ou

dpkg --get-selections

Liste des paquets récemment mis à jour

ls -lt /var/lib/dpkg/info/*.list | head -n 50

Nettoyer rc

dpkg -l | awk '/^rc/{print $2}' | xargs -r sudo dpkg -P

source:https://www.debian-fr.org/t/paquets-casses-comment-les-lister/16997/5

Trouver le nom exact des packages de noyau que vous souhaitez désinstaller

 dpkg -l | grep "linux-[a-z]*-"

Rechercher des informations sur les paquets installés

dpkg-query -l '*curl*'

Obtenir plus de détails sur un paquet spécifique

dpkg-query -s curl

Rechercher des fichiers appartenant à un paquet

dpkg-query -S curl

Lister tous les fichiers installés par un paquet

dpkg-query -L curl

voir si des paquets sont cassés

 apt-get check
 dpkg -l | grep -v ^ii
 dpkg -l | grep ^rc #(installé et reste des fichiers de configuration)
 dpkg -l | grep ^iB #(installé et avec des dépendances cassées)

Termine la configuration des paquets interrompus.

sudo dpkg --configure -a

Utilisez les deux commandes en combo si nécessaire : Si un paquet est en état "demi-configuré"

sudo dpkg --configure -a  # Essaye d'abord de terminer les configs
sudo apt --fix-broken install  # Si le problème persiste

Résumé

  • dpkg = outil bas niveau pour manipuler les paquets .deb.
  • apt = outil haut niveau qui utilise dpkg en arrière-plan.
  • Utilisez dpkg pour :
    • Installer des paquets locaux.
    • Diagnostiquer des problèmes de paquets.
    • Explorer le contenu d’un paquet.

Pour une gestion quotidienne, privilégiez apt ou apt-get ! 🚀