Linux : impossible d’installer à cause d’erreurs de dépendances — causes et solutions

Sous Linux, il est fréquent qu’une installation échoue avec des messages du type « dépendances impossibles à résoudre », « paquet requis indisponible » ou « conflit avec un autre paquet ». Cela ne signifie pas seulement qu’une application donnée ne peut pas être installée. Bien souvent, cela indique que l’état global des paquets du système est déjà devenu incohérent. Des gestionnaires de paquets comme apt, dnf et pacman supposent que bibliothèques, runtimes et paquets auxiliaires existent dans des combinaisons de versions compatibles. Dès que cette chaîne est rompue, l’installation s’arrête.

Il est important de ne pas considérer une erreur de dépendances comme un simple problème du genre « il manque juste un paquet ». En réalité, la cause peut être un cache corrompu, des entrées de repository obsolètes, un mélange de sources tierces, une mise à jour interrompue, une mise à jour partielle, des paquets retenus, des bibliothèques installées manuellement ou un conflit d’architecture. C’est pourquoi il ne faut pas commencer par supprimer des fichiers au hasard ni télécharger des .deb ou .rpm depuis des sources douteuses. Il faut d’abord comprendre précisément quelle dépendance échoue et pour quelle raison.

Qu’est-ce qu’une erreur de dépendances ?

La plupart des paquets Linux ne fonctionnent pas seuls. Une application peut exiger une bibliothèque donnée, une version précise d’un runtime, un outil auxiliaire ou un autre composant système. Si l’un de ces éléments manque ou si la version ne correspond pas, le gestionnaire de paquets refuse de poursuivre afin de préserver la cohérence du système.

Une erreur de dépendances ne signifie donc pas seulement que « quelque chose manque ». Elle peut aussi vouloir dire que deux conditions ne peuvent pas être satisfaites en même temps, que deux paquets se contredisent, ou que l’ensemble des versions disponibles ne forme plus une combinaison cohérente.

Symptômes fréquents

  • Des messages contenant Depends:, requires ou unresolved dependency apparaissent
  • Le système signale des paquets cassés ou des dépendances impossibles à résoudre
  • L’installation d’un paquet demande la suppression d’autres paquets
  • Une bibliothèque précise est requise, mais sa bonne version n’est pas disponible
  • Depuis une mise à jour, les installations échouent systématiquement
  • Les problèmes ont commencé après l’ajout d’un repository tiers
  • Une mise à jour partielle a laissé le système dans un état incohérent

Que vérifier en premier ?

Parfois, cela ressemble à un problème de dépendances alors que la vraie cause se trouve dans le réseau, le DNS ou les mirrors. Il faut donc d’abord vérifier que l’accès aux sources de paquets fonctionne correctement.

ping -c 4 8.8.8.8
ping -c 4 google.com
ip addr
ip route

Ensuite, il faut vérifier que la mise à jour des listes de paquets se déroule normalement.

sudo apt update
sudo dnf makecache
sudo pacman -Sy

Si l’on obtient déjà ici des erreurs 404, des problèmes de résolution de noms, des erreurs de signature ou des timeouts, alors la cause principale n’est peut-être pas directement la dépendance elle-même.

Causes principales des erreurs de dépendances

1. Mélange de repositorys

C’est l’une des causes les plus fréquentes. Les repositorys officiels, les anciens PPA, les dépôts d’une autre version de la distribution, les sources de test ou les dépôts tiers peuvent fournir un même paquet sous des versions différentes avec des règles de dépendances différentes. On se retrouve alors avec un paquet qui exige une bibliothèque récente et un autre qui ne fonctionne qu’avec une version ancienne.

2. Mise à jour interrompue

Si une mise à jour est interrompue par une coupure de courant, un terminal fermé, une session SSH coupée ou un plantage de l’interface graphique, une partie des paquets est mise à jour et une autre ne l’est pas. Cet état intermédiaire provoque très souvent des erreurs de dépendances.

3. Mise à jour partielle

Le problème est particulièrement connu dans Arch Linux, où les mises à jour partielles sont fortement déconseillées. Mais même sur Debian, Ubuntu ou Fedora, forcer la mise à jour de quelques paquets clés sans aligner le reste du système peut provoquer le même type de déséquilibre.

4. Paquets retenus ou épinglés

Si certains paquets sont volontairement retenus à une ancienne version, les autres paquets ne peuvent pas évoluer comme prévu. Toute la chaîne de dépendances peut alors se retrouver bloquée.

5. Installations manuelles hors gestionnaire de paquets

Installer manuellement des bibliothèques, copier des fichiers dans le système ou utiliser des paquets téléchargés sans gestion propre des sources peut créer un écart entre l’état réel du système et ce que croit le gestionnaire de paquets.

6. Paquets en conflit

Une erreur de dépendances ne signifie pas toujours qu’il manque un paquet. Parfois, le vrai problème est que deux paquets ne peuvent pas coexister, par exemple parce qu’ils fournissent les mêmes fichiers ou parce qu’ils sont conçus comme incompatibles.

7. Incompatibilité d’architecture

Il arrive qu’un paquet existe, mais pas pour la bonne architecture. Mélanger du 32 bits et du 64 bits sans configuration correcte, ou tenter d’installer un paquet conçu pour une autre architecture, peut aussi se traduire par une erreur de dépendances.

8. Cache ou metadata incohérents

Des listes de paquets obsolètes, un cache corrompu ou des metadata de mirrors désynchronisés peuvent empêcher le gestionnaire de paquets de voir une dépendance pourtant bien présente dans le dépôt.

Que vérifier dans les systèmes apt

Dans Debian / Ubuntu, il faut examiner non seulement apt, mais aussi l’état de dpkg.

Réparer les états incomplets

sudo dpkg --configure -a
sudo apt --fix-broken install

Après une mise à jour interrompue, ces deux commandes sont souvent le bon point de départ.

Vérifier les paquets retenus

apt-mark showhold

Un paquet retenu peut bloquer toute la chaîne de dépendances.

Contrôler les versions disponibles

apt-cache policy nom-du-paquet

Cela permet de voir quelles versions sont proposées et depuis quelles sources elles arrivent.

Que vérifier dans les systèmes dnf

Dans Fedora / RHEL, il faut surtout surveiller l’intégrité de l’état système et l’historique des transactions.

Vérifier l’état actuel

sudo dnf check

Cela aide à repérer les dépendances non satisfaites dans tout le système.

Resynchroniser avec l’état attendu de la distribution

sudo dnf distro-sync

Si certaines versions sont en avance et d’autres en retard, cette commande aide souvent à retrouver un état cohérent.

Afficher les exigences non satisfaites

sudo dnf repoquery --unsatisfied

On voit alors plus clairement quelles conditions ne sont pas remplies.

Que vérifier dans les systèmes pacman

Dans Arch Linux, il faut surtout restaurer la cohérence complète du système et éviter les mises à jour partielles.

Mettre à jour tout le système

sudo pacman -Syu

Quand une erreur de dépendances existe déjà, tenter de corriger le problème paquet par paquet l’aggrave souvent encore davantage.

Rafraîchir la base de synchronisation

sudo pacman -Syy

Cela est utile lorsque les informations locales ne correspondent plus aux mirrors.

Les logs sont essentiels

On comprend rarement une erreur de dépendances en regardant seulement la dernière ligne. Il faut voir quel paquet réclame quelle version, quel candidat a été rejeté et pourquoi.

apt / dpkg

sudo tail -n 100 /var/log/apt/history.log
sudo tail -n 100 /var/log/dpkg.log

dnf

sudo journalctl -xe --no-pager | tail -n 100
sudo dnf history

pacman

sudo tail -n 100 /var/log/pacman.log

Ordre pratique de diagnostic

Étape 1 : Vérifier le réseau et l’accès aux repositorys

ping -c 4 8.8.8.8
ping -c 4 google.com

Étape 2 : Mettre à jour les listes de paquets

sudo apt update
sudo dnf makecache
sudo pacman -Syy

Étape 3 : Réparer les états incomplets

Avec apt via dpkg --configure -a, avec dnf via dnf check, et avec pacman via une approche de synchronisation complète.

Étape 4 : Examiner les versions et les sources du paquet en cause

Il faut identifier d’où vient le paquet, quelles versions sont proposées et si l’une d’elles est retenue.

Étape 5 : Suspecter les repositorys tiers et les anciennes configurations

Beaucoup d’erreurs de dépendances trouvent leur origine réelle dans un mauvais mélange de sources.

Ce qu’il faut éviter

  • Installer des paquets supplémentaires au hasard sans comprendre l’erreur
  • Télécharger des .deb / .rpm isolés depuis des sources douteuses
  • Continuer à faire des mises à jour partielles
  • Désactiver les vérifications de signatures ou de dépendances
  • Ajouter d’autres repositorys tiers sans connaître la cause réelle

Comment éviter que cela se reproduise

  • Privilégier les repositorys officiels
  • Ne pas conserver de vieux PPA ou de sources incorrectes
  • Ne pas interrompre les mises à jour
  • Éviter les mises à jour partielles sur Arch
  • Créer des snapshots ou des sauvegardes avant les gros changements

Conclusion

Quand une installation Linux échoue à cause d’erreurs de dépendances, le problème est souvent plus profond qu’une simple bibliothèque manquante. Mélange de repositorys, mises à jour interrompues, mises à jour partielles, paquets retenus, installations manuelles et conflits d’architecture sont des causes fréquentes. La clé est de lire attentivement le message d’erreur pour comprendre quel paquet demande quelle version et pourquoi le système ne peut pas la fournir. Ensuite seulement, il faut appliquer la bonne stratégie : dpkg --configure -a et apt --fix-broken install pour apt, dnf check et distro-sync pour dnf, et synchronisation complète avec mise à jour totale pour pacman.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *