Aller au contenu
Administration Linux medium

Corriger les dépendances cassées sous Linux (APT et DNF)

11 min de lecture

sudo apt --fix-broken install répare la plupart des dépendances cassées sur Debian/Ubuntu, sudo dnf distro-sync réaligne les paquets sur RHEL/Fedora. Ces deux commandes sont le premier réflexe quand le gestionnaire de paquets refuse d’installer ou de mettre à jour quoi que ce soit.

  • Diagnostiquer le type de problème : installation interrompue, conflit ou paquet manquant
  • Réparer une installation APT/dpkg interrompue
  • Résoudre un conflit de dépendances avec APT et DNF
  • Débloquer un gestionnaire de paquets verrouillé
  • Connaître les commandes de dernier recours sans casser le système
  • Prévenir les problèmes de dépendances

Les dépendances cassées sont un problème classique en administration Linux :

  • Une mise à jour a été interrompue (coupure réseau, Ctrl+C malencontreux, reboot pendant un apt upgrade) — dpkg est dans un état incohérent
  • Vous ajoutez un PPA ou un dépôt tiers qui fournit une version incompatible d’une bibliothèque partagée
  • Un paquet a été supprimé manuellement avec dpkg --remove --force et d’autres paquets dépendent de lui
  • Après une montée de version distribution, certains paquets ne sont plus disponibles dans les nouveaux dépôts
  • apt install ou dnf install échoue avec un message de dépendances non satisfaites et vous ne savez pas par où commencer

Avant de réparer, identifiez le type de problème :

Fenêtre de terminal
sudo dpkg --audit

Si des paquets apparaissent, ils sont dans un état incohérent (installation partielle, configuration incomplète).

Fenêtre de terminal
sudo apt-get check
Reading package lists...
Building dependency tree...
Reading state information...

Si tout est propre, aucun message d’erreur n’apparaît. Sinon, APT indique les paquets avec des dépendances insatisfaites.

Fenêtre de terminal
dpkg -l | grep -E '^(iU|iF|iH|.I)'
ÉtatSignification
iiInstallé correctement
iUDéballé mais pas configuré
iFConfiguration échouée
iHRInstallation interrompue, nécessite réinstallation
rcSupprimé, fichiers de config restants
  1. Terminer les configurations dpkg en attente

    Fenêtre de terminal
    sudo dpkg --configure -a

    Cette commande termine la configuration de tous les paquets partiellement installés. C’est toujours la première chose à essayer.

  2. Réparer les dépendances cassées avec APT

    Fenêtre de terminal
    sudo apt --fix-broken install

    APT télécharge et installe les dépendances manquantes, ou supprime les paquets incohérents. Vérifiez ce qu’il propose avant de confirmer.

  3. Mettre à jour la liste des paquets

    Fenêtre de terminal
    sudo apt update

    Si un dépôt a été modifié ou supprimé, les métadonnées locales sont peut-être obsolètes.

  4. Réessayer l’installation

    Fenêtre de terminal
    sudo apt install -f

    L’option -f (fix) force APT à résoudre les dépendances avant de continuer.

  5. Vérifier le résultat

    Fenêtre de terminal
    sudo dpkg --audit
    sudo apt-get check

    Les deux commandes doivent être silencieuses (aucune sortie = système propre).

Si apt ou dpkg affiche :

E: Could not get lock /var/lib/dpkg/lock-frontend

Un autre processus dpkg est en cours. Vérifiez d’abord :

Fenêtre de terminal
ps aux | grep -E 'apt|dpkg'

Si un processus apt ou dpkg tourne encore, attendez qu’il finisse. Si la machine a redémarré pendant une mise à jour et qu’aucun processus ne tourne :

Fenêtre de terminal
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
sudo dpkg --configure -a

Si un paquet est dans un état tellement cassé qu’il ne peut ni être reconfiguré ni supprimé :

Fenêtre de terminal
sudo dpkg --remove --force-remove-reinstreq nom-du-paquet
sudo apt --fix-broken install
Fenêtre de terminal
sudo apt install --reinstall nom-du-paquet

Retélécharge et réinstalle le paquet sans le supprimer d’abord.

  1. Synchroniser les paquets avec les dépôts

    Fenêtre de terminal
    sudo dnf distro-sync

    Aligne tous les paquets installés sur les versions disponibles dans les dépôts actifs. Résout la plupart des problèmes post-mise à jour.

  2. Réinstaller un paquet suspect

    Fenêtre de terminal
    sudo dnf reinstall nom-du-paquet
  3. Vérifier et réparer la base RPM

    Fenêtre de terminal
    sudo rpm --rebuilddb

    Reconstruit la base de données RPM si dnf signale des erreurs d’accès à la base.

  4. Nettoyer le cache

    Fenêtre de terminal
    sudo dnf clean all
    sudo dnf makecache

    Force le retéléchargement des métadonnées de tous les dépôts.

  5. Vérifier le résultat

    Fenêtre de terminal
    sudo dnf check
Fenêtre de terminal
sudo dnf history list
ID | Command line | Date and time | Action(s) | Altered
8 | install nginx | 2026-04-15 14:30 | Install | 3
7 | update | 2026-04-14 09:00 | Upgrade | 42

Pour annuler la transaction n°8 :

Fenêtre de terminal
sudo dnf history undo 8

DNF défait les changements effectués par cette transaction (supprime les paquets installés, restaure les versions précédentes).

Si un dépôt tiers fournit une version incompatible :

Fenêtre de terminal
# Identifier le dépôt source
dnf repoquery --info nom-du-paquet
# Exclure un dépôt temporairement
sudo dnf update --disablerepo=nom-du-depot-tiers
# Verrouiller un paquet à sa version actuelle
sudo dnf versionlock add nom-du-paquet
Fenêtre de terminal
# Debian/Ubuntu
grep -r "^deb " /etc/apt/sources.list /etc/apt/sources.list.d/
# RHEL/Fedora
dnf repolist
Fenêtre de terminal
# Renommer le fichier pour le désactiver
sudo mv /etc/apt/sources.list.d/depot-tiers.list /etc/apt/sources.list.d/depot-tiers.list.disabled
sudo apt update
sudo apt --fix-broken install

Vérifier les paquets provenant de dépôts tiers (APT)

Section intitulée « Vérifier les paquets provenant de dépôts tiers (APT) »
Fenêtre de terminal
apt list --installed 2>/dev/null | grep -v "ubuntu\|debian"
Fenêtre de terminal
# Bloquer
sudo apt-mark hold nom-du-paquet
# Vérifier
apt-mark showhold
# Débloquer
sudo apt-mark unhold nom-du-paquet
  • Ne jamais interrompre apt upgrade ou dnf update — si un Ctrl+C est nécessaire, exécutez dpkg --configure -a ou dnf distro-sync immédiatement après
  • Éviter les dépôts tiers non fiables — chaque PPA ou dépôt externe est un risque de conflit
  • Tester les mises à jour majeures sur un serveur de test avant la production (apt upgrade --dry-run, dnf update --assumeno)
  • Garder les métadonnées à jour : apt update avant chaque installation
  • Documenter les paquets bloqués (apt-mark showhold, dnf versionlock list) — un paquet gelé oublié deviendra un problème plus tard
SymptômeCause probableSolution
Could not get lock /var/lib/dpkg/lockAutre processus dpkg actifVérifier ps aux | grep dpkg, attendre ou supprimer le lock si aucun processus
Unmet dependencies après installDépôt tiers incompatibleDésactiver le dépôt, apt --fix-broken install
dpkg --configure -a boucle en erreurScript postinst du paquet cassédpkg --remove --force-remove-reinstreq paquet
dnf check signale des doublonsMise à jour partiellednf remove --duplicates puis dnf distro-sync
Package X has no installation candidateDépôt supprimé ou paquet retiréapt update, vérifier les sources
Error: Transaction check error (DNF)Conflit entre packagesdnf --best --allowerasing install paquet
Base RPM corrompueCrash pendant transactionrpm --rebuilddb puis dnf clean all
Fenêtre de terminal
# Diagnostic rapide — Debian/Ubuntu
sudo dpkg --audit # Paquets en état incohérent
sudo apt-get check # Dépendances insatisfaites
apt-mark showhold # Paquets bloqués
# Diagnostic rapide — RHEL/Fedora
sudo dnf check # Cohérence des dépendances
sudo dnf history list # Dernières transactions
dnf versionlock list # Paquets verrouillés
  • dpkg --configure -a est toujours la première commande après une installation interrompue sur Debian/Ubuntu
  • apt --fix-broken install résout la majorité des problèmes de dépendances APT
  • dnf distro-sync réaligne tous les paquets sur RHEL/Fedora — c’est l’équivalent du « fix broken » côté DNF
  • Ne supprimez jamais les fichiers lock si un processus dpkg/apt est encore actif
  • dnf history undo permet d’annuler une transaction problématique — APT n’a pas d’équivalent aussi simple
  • Les dépôts tiers sont la première cause de conflits de dépendances — désactivez-les pour isoler le problème
  • apt-mark hold et dnf versionlock bloquent un paquet pour éviter des mises à jour incompatibles
  • En dernier recours, dpkg --remove --force-remove-reinstreq permet de supprimer un paquet irrécupérable

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn