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.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- 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
Dans quel contexte ?
Section intitulée « Dans quel contexte ? »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 --forceet 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 installoudnf installéchoue avec un message de dépendances non satisfaites et vous ne savez pas par où commencer
Diagnostiquer le problème
Section intitulée « Diagnostiquer le problème »Avant de réparer, identifiez le type de problème :
Vérifier l’état de dpkg
Section intitulée « Vérifier l’état de dpkg »sudo dpkg --auditSi des paquets apparaissent, ils sont dans un état incohérent (installation partielle, configuration incomplète).
Vérifier les dépendances APT
Section intitulée « Vérifier les dépendances APT »sudo apt-get checkReading 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.
Lister les paquets cassés
Section intitulée « Lister les paquets cassés »dpkg -l | grep -E '^(iU|iF|iH|.I)'| État | Signification |
|---|---|
ii | Installé correctement |
iU | Déballé mais pas configuré |
iF | Configuration échouée |
iHR | Installation interrompue, nécessite réinstallation |
rc | Supprimé, fichiers de config restants |
Vérifier la cohérence RPM
Section intitulée « Vérifier la cohérence RPM »sudo dnf checkSignale les dépendances manquantes, les doublons et les conflits dans la base RPM.
Lister les problèmes
Section intitulée « Lister les problèmes »sudo dnf repoquery --unsatisfiedListe les paquets installés dont les dépendances ne sont plus satisfaites.
Vérifier l’historique des transactions
Section intitulée « Vérifier l’historique des transactions »sudo dnf history listLes transactions marquées comme incomplètes sont à vérifier :
sudo dnf history info <id>Réparer — Debian / Ubuntu
Section intitulée « Réparer — Debian / Ubuntu »-
Terminer les configurations dpkg en attente
Fenêtre de terminal sudo dpkg --configure -aCette commande termine la configuration de tous les paquets partiellement installés. C’est toujours la première chose à essayer.
-
Réparer les dépendances cassées avec APT
Fenêtre de terminal sudo apt --fix-broken installAPT télécharge et installe les dépendances manquantes, ou supprime les paquets incohérents. Vérifiez ce qu’il propose avant de confirmer.
-
Mettre à jour la liste des paquets
Fenêtre de terminal sudo apt updateSi un dépôt a été modifié ou supprimé, les métadonnées locales sont peut-être obsolètes.
-
Réessayer l’installation
Fenêtre de terminal sudo apt install -fL’option
-f(fix) force APT à résoudre les dépendances avant de continuer. -
Vérifier le résultat
Fenêtre de terminal sudo dpkg --auditsudo apt-get checkLes deux commandes doivent être silencieuses (aucune sortie = système propre).
Cas spécial : dpkg verrouillé
Section intitulée « Cas spécial : dpkg verrouillé »Si apt ou dpkg affiche :
E: Could not get lock /var/lib/dpkg/lock-frontendUn autre processus dpkg est en cours. Vérifiez d’abord :
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 :
sudo rm /var/lib/dpkg/lock-frontendsudo rm /var/lib/dpkg/locksudo dpkg --configure -aCas spécial : paquet impossible à supprimer
Section intitulée « Cas spécial : paquet impossible à supprimer »Si un paquet est dans un état tellement cassé qu’il ne peut ni être reconfiguré ni supprimé :
sudo dpkg --remove --force-remove-reinstreq nom-du-paquetsudo apt --fix-broken installForcer la réinstallation d’un paquet
Section intitulée « Forcer la réinstallation d’un paquet »sudo apt install --reinstall nom-du-paquetRetélécharge et réinstalle le paquet sans le supprimer d’abord.
Réparer — RHEL / Fedora
Section intitulée « Réparer — RHEL / Fedora »-
Synchroniser les paquets avec les dépôts
Fenêtre de terminal sudo dnf distro-syncAligne 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.
-
Réinstaller un paquet suspect
Fenêtre de terminal sudo dnf reinstall nom-du-paquet -
Vérifier et réparer la base RPM
Fenêtre de terminal sudo rpm --rebuilddbReconstruit la base de données RPM si
dnfsignale des erreurs d’accès à la base. -
Nettoyer le cache
Fenêtre de terminal sudo dnf clean allsudo dnf makecacheForce le retéléchargement des métadonnées de tous les dépôts.
-
Vérifier le résultat
Fenêtre de terminal sudo dnf check
Annuler une transaction DNF
Section intitulée « Annuler une transaction DNF »sudo dnf history listID | 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 | 42Pour annuler la transaction n°8 :
sudo dnf history undo 8DNF défait les changements effectués par cette transaction (supprime les paquets installés, restaure les versions précédentes).
Résoudre un conflit de version
Section intitulée « Résoudre un conflit de version »Si un dépôt tiers fournit une version incompatible :
# Identifier le dépôt sourcednf repoquery --info nom-du-paquet
# Exclure un dépôt temporairementsudo dnf update --disablerepo=nom-du-depot-tiers
# Verrouiller un paquet à sa version actuellesudo dnf versionlock add nom-du-paquetProblèmes liés aux dépôts tiers
Section intitulée « Problèmes liés aux dépôts tiers »Identifier les dépôts problématiques
Section intitulée « Identifier les dépôts problématiques »# Debian/Ubuntugrep -r "^deb " /etc/apt/sources.list /etc/apt/sources.list.d/
# RHEL/Fedoradnf repolistDésactiver temporairement un dépôt
Section intitulée « Désactiver temporairement un dépôt »# Renommer le fichier pour le désactiversudo mv /etc/apt/sources.list.d/depot-tiers.list /etc/apt/sources.list.d/depot-tiers.list.disabledsudo apt updatesudo apt --fix-broken installsudo dnf --disablerepo=depot-tiers update# Ou désactivation permanantesudo dnf config-manager --set-disabled depot-tiersVérifier les paquets provenant de dépôts tiers (APT)
Section intitulée « Vérifier les paquets provenant de dépôts tiers (APT) »apt list --installed 2>/dev/null | grep -v "ubuntu\|debian"Bloquer un paquet pour éviter les mises à jour
Section intitulée « Bloquer un paquet pour éviter les mises à jour »# Bloquersudo apt-mark hold nom-du-paquet
# Vérifierapt-mark showhold
# Débloquersudo apt-mark unhold nom-du-paquet# Installer le plugin versionlocksudo dnf install dnf-plugin-versionlock
# Bloquersudo dnf versionlock add nom-du-paquet
# Listerdnf versionlock list
# Débloquersudo dnf versionlock delete nom-du-paquetPrévenir les problèmes
Section intitulée « Prévenir les problèmes »- Ne jamais interrompre
apt upgradeoudnf update— si un Ctrl+C est nécessaire, exécutezdpkg --configure -aoudnf distro-syncimmé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 updateavant chaque installation - Documenter les paquets bloqués (
apt-mark showhold,dnf versionlock list) — un paquet gelé oublié deviendra un problème plus tard
Dépannage
Section intitulée « Dépannage »| Symptôme | Cause probable | Solution |
|---|---|---|
Could not get lock /var/lib/dpkg/lock | Autre processus dpkg actif | Vérifier ps aux | grep dpkg, attendre ou supprimer le lock si aucun processus |
Unmet dependencies après install | Dépôt tiers incompatible | Désactiver le dépôt, apt --fix-broken install |
dpkg --configure -a boucle en erreur | Script postinst du paquet cassé | dpkg --remove --force-remove-reinstreq paquet |
dnf check signale des doublons | Mise à jour partielle | dnf remove --duplicates puis dnf distro-sync |
Package X has no installation candidate | Dépôt supprimé ou paquet retiré | apt update, vérifier les sources |
Error: Transaction check error (DNF) | Conflit entre packages | dnf --best --allowerasing install paquet |
| Base RPM corrompue | Crash pendant transaction | rpm --rebuilddb puis dnf clean all |
# Diagnostic rapide — Debian/Ubuntusudo dpkg --audit # Paquets en état incohérentsudo apt-get check # Dépendances insatisfaitesapt-mark showhold # Paquets bloqués
# Diagnostic rapide — RHEL/Fedorasudo dnf check # Cohérence des dépendancessudo dnf history list # Dernières transactionsdnf versionlock list # Paquets verrouillésÀ retenir
Section intitulée « À retenir »dpkg --configure -aest toujours la première commande après une installation interrompue sur Debian/Ubuntuapt --fix-broken installrésout la majorité des problèmes de dépendances APTdnf distro-syncré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 undopermet 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 holdetdnf versionlockbloquent un paquet pour éviter des mises à jour incompatibles- En dernier recours,
dpkg --remove --force-remove-reinstreqpermet de supprimer un paquet irrécupérable