Comment résoudre les dépendances non satisfaites après l'ajout d'un PPA?

Parfois, lorsque j'installe des éléments, j'obtiens une erreur comme celle-ci:

Some packages could not be installed. This may mean that you haverequested an impossible situation or if you are using the unstabledistribution that some required packages have not yet been createdor been moved out of Incoming.The following information may help to resolve the situation:The following packages have unmet dependencies: package1 : Depends: package2 (>= 1.8) but 1.7.5-1ubuntu1 is to be installedE: Unable to correct problems, you have held broken packages.

Comment puis-je résoudre ce problème?

APT est un système de gestion de paquets pour Debian et d'autres distributions Linux basées sur celui-ci, telles qu'Ubuntu. Pour la plupart, APT est facile à utiliser pour installer, supprimer et mettre à jour des paquets. Dans de rares cas, souvent lorsque vous mélangez des dépendances tierces, il est possible que apt-get peut finir par vous donner une erreur vous indiquant qu'une installation de package n'a pas pu être terminée.

Solution:

C'est toujours une bonne idée de sauvegarder des fichiers de configuration comme /etc/apt/sources.list, vous pouvez donc annuler les modifications si nécessaire.

  • Si le error montre quelque chose comme ça:

    <some-package>: Depends: <other-package> (= version) but this-version is to be installed

    Ensuite, assurez-vous que le restricted et universe les dépôts sont activés. Frapper Alt+F2, type software-properties-gtk et frappé Enter.

    Selon Ubuntu Software onglet, activez tous les référentiels.

  • Une cause possible de dépendances non satisfaites pourrait être une base de données de packages corrompue et / ou certains packages n'ont pas été installés correctement. Pour résoudre ce problème, cliquez sur Alt+Ctrl+T pour ouvrir le terminal et essayer d'exécuter l'une des commandes suivantes:

    sudo apt - se nettoyer

    ou,

    sudo apt-get autoclean

    apt-get clean efface le dépôt local des fichiers de paquets récupérés (le .fichiers deb). Il supprime tout sauf le fichier de verrouillage de /var / cache/apt/ archives /et/var/cache/apt/archives/partial/. apt-get autoclean efface le dépôt local des fichiers de paquets récupérés, mais contrairement à apt-get clean, il supprime uniquement les fichiers de package qui ne peuvent plus être téléchargés et qui sont en grande partie inutiles.

  • L'un des correctifs les plus élémentaires pour résoudre les problèmes de dépendances consiste à exécuter:

    installation de sudo apt-get-f

    Le -f ici signifie "réparer cassé". Apt tentera de corriger les dépendances cassées. Si vous avez installé manuellement un paquet qui avait des dépendances non satisfaites, apt-get installera ces dépendances, si possible, sinon il peut simplement supprimer le package que vous avez installé afin de résoudre le problème.

    Puis courez:

    sudo dpkg configure configure-a

    Puis exécutez à nouveau ceci:

    installation de sudo apt-get-f

    Si la sortie est:

    0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

    Cela signifie qu'il a échoué.

  • La solution suivante consiste à exécuter:

    sudo apt-get - u dist-upgrade

    S'il montre des paquets détenus, il est préférable de les éliminer. Les paquets sont conservés en raison de conflits de dépendances qui apt impossible de résoudre. Essayez cette commande pour trouver et réparer les conflits:

    sudo apt-get-o Debug:: pkgProblemResolver=oui dist-upgrade

    S'il ne peut pas résoudre les conflits, il sortira avec:

    0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.

    Supprimez les paquets détenus un par un, en cours d'exécution dist-upgrade à chaque fois, jusqu'à ce qu'il n'y ait plus de paquets retenus. Réinstallez ensuite tous les packages nécessaires. Assurez-vous d'utiliser le --dry-run option, afin que vous soyez pleinement informé des conséquences:

    sudo apt-get remove name nom-du-paquet-exécuté-à-sec

    Étant donné que la suppression du package que vous essayez d'installer peut ne pas être idéale, vous pouvez également essayer de trouver un référentiel contenant les packages dont vous avez besoin pour satisfaire les dépendances.

Enfin, si tout le reste échoue, vous pouvez essayer de satisfaire vous-même les dépendances, soit en trouvant et en installant les packages nécessaires, soit en les installant à partir des sources, puis en créant “comme"des paquets pour eux.

Désactiver / Supprimer/Purger les PPA:

Les PPA (Personal Package Archive) sont des référentiels hébergés sur Tableau de Bord. Vous pouvez utiliser des PPA pour installer ou mettre à niveau des packages qui ne sont pas disponibles dans les référentiels officiels Ubuntu.

L'une des causes les plus courantes de dépendances non satisfaites sont les PPA, en particulier lorsqu'ils sont utilisés pour mettre à niveau le package existant dans les référentiels Ubuntu. Pour résoudre le problème, vous avez trois options: désactiver, purger (revenir au package d'origine dans les référentiels Ubuntu) ou supprimer PPA.

  • Désactiver:

    La désactivation d'un PPA signifie qu'il n'y a plus de mises à jour pour les packages installés à partir de ce PPA. Pour désactiver un PPA: Ouvrir Software Center > Edit > Software Sources Ou,

    Frapper Alt+F2 et courir software-properties-gtk.

    Cliquez sur Other Software tab, vous verrez que chaque PPA a deux lignes ici, une pour les packages compilés et une pour la source, Uncheck les deux lignes pour désactiver un PPA. Ici, vous pouvez également ajouter et supprimer des PPA.

  • Purge:

    Purger un PPA signifie rétrograder les packages du PPA sélectionné vers la version des référentiels officiels Ubuntu et désactiver ce PPA. Purge du PPA c'est exactement ce qu'il fait. Pour installer PPA Purge, exécutez la commande suivante:

    sudo apt-get install ppa-purge

Mais, considérant la question apt est cassé, la commande ci-dessus échouera. Utilisez donc cette commande

mkdir ppa-purge && cd ppa-purge && wget http://mirror.pnl.gov/ubuntu/pool/universe/p/ppa-purge/ppa-purge_0.2.8+bzr56_all.deb && wget http://mirror.pnl.gov/ubuntu//pool/main/a/aptitude/aptitude_0.6.6-1ubuntu1_i386.deb && sudo dpkg -i ./*.deb

Pour utiliser la purge PPA:

sudo ppa-purge ppa:pppa/ppa

Si la commande' ppa-purge ' échoue pour une raison quelconque, vous ne pouvez pas exécuter à nouveau 'ppa-purge' à moins de réactiver le PPA (Pour activer le PPA, suivez les mêmes étapes que la désactivation d'un PPA et Check les deux lignes d'un PPA particulier pour l'activer).

Note: PPA Purge ne supprime pas les PPA (peut - être à l'avenir), vous devrez donc supprimer manuellement le PPA.

  • Supprimer:

    Si le package installé à partir d'un PPA n'existe pas dans les référentiels officiels Ubuntu, utilisez PPA Purge n'est pas recommandé, car il n'y a rien à déclasser et PPA Purge je ne le supprimerais pas non plus. Pour supprimer un PPA et les packages installés, exécutez les commandes suivantes: (Ignorez la première commande si vous ne souhaitez pas supprimer les packages installés)

    sudo apt-get autoremove pur purge les noms de paquetsudo add-apt-repository remove remove ppa: someppa/ppasudo apt-get autoclean

Alternativement, vous pouvez utiliser Y PPA Manager pour désactiver / supprimer/purger les PPA (Détails à la fin de la réponse).

Mesures Préventives:

Alors, comment pouvons-nous éviter que cela ne se produise en premier lieu?

  • Gardez Ubuntu à jour. Ubuntu avertit automatiquement lorsque des mises à jour sont disponibles, vous pouvez également vérifier les mises à jour disponibles en cliquant sur Session Indicator dans le panneau Unity:

    Ou, Frappé Alt+Ctrl+T pour ouvrir le terminal et exécuter les commandes suivantes:

    sudo apt-get updatesudo apt-get upgrade

    Mise à jour: Synchronise votre liste de packages disponibles avec les serveurs des référentiels sources.Mise à niveau: Télécharge et installe toutes les versions plus récentes de vos packages installés.

  • Si vous décidez d'ajouter d'autres référentiels aux sources.ensuite, assurez-vous que le référentiel est destiné à fonctionner (et connu pour fonctionner) avec Ubuntu. Les dépôts qui ne sont pas conçus pour fonctionner avec votre version d'Ubuntu peuvent introduire des incohérences dans votre système et vous forcer à réinstaller. Assurez-vous également que vous avez vraiment besoin d'ajouter des référentiels externes car le ou les progiciels que vous recherchez ont peut-être déjà été introduits dans les référentiels officiels! Source
  • Supprimez les PPAS en double. Y PPA Manager (guide d'installation à la fin de la réponse) peut facilement analyser et supprimer les PPAS en double.

    • Frapper Alt+F2 et courir y-ppa-manager pour ouvrir le Gestionnaire PPA.
    • Une fois ouvert, double-cliquez ou appuyez sur Enter sur Advanced.
    • Dans la fenêtre résultante, sélectionnez Scan and remove duplicate PPAs et cliquez sur OK.

enter image description here

Obtenir De L'Aide:

Lorsque vous demandez de l'aide sur Askubuntu ou tout autre forum d'aide, vous devez inclure la sortie des commandes suivantes dans votre question:

  • Sortie de l'erreur réelle:

    nom-du-paquet d'installation sudo apt-get
  • Cela montrera vos sources.liste:

    cat / etc / apt / sources.liste
  • Cela affichera la liste des PPA (le cas échéant):

    cat / etc / apt / sources.liste.d/*

Sources Supplémentaires:


Y Gestionnaire de PPA: Y PPA Manager est un guichet unique pour tous vos besoins en matière de PPA.

y ppa manager

Voici quelques-unes de ses caractéristiques:

  • rechercher des packages dans tous les PPA Launchpad
  • répertorier et télécharger des packages dans un PPA
  • ajouter / supprimer / purger un PPA
  • sauvegarde et restauration des sources PPA
  • supprimer les sources PPA en double

Installer Y PPA Manager, ouvrez le terminal en appuyant sur Alt+Ctrl+T et exécutez les commandes suivantes:

sudo add-apt-repository ppa:webupd8team / y-ppa-managersudo apt-get updatesudo apt-get install y-ppa-manager

Considérant la question, apt est cassé, utilisez donc ces commandes à la place

sudo su

et

32 Bits:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_i386.deb && dpkg -i ./*.deb

64 Bits:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_amd64.deb && dpkg -i ./*.deb

Remarque: Toutes les commandes à exécuter doivent être exécutées dans le terminal, qui peut être ouvert soit par Ctrl+Alt+T ou en recherchant terminal dans le tableau de bord.

Est-il vraiment cassé?

Essayez d'exécuter la commande suivante et essayez de réinstaller le logiciel que vous essayez d'installer

sudo apt-get update

Étapes de Pré-Performance

Sauvegarde

Sauvegardez les fichiers suivants:

  • /etc/apt/sources.list
  • /var/lib/dpkg/status

Pour ce faire, utilisez ces commandes

sudo cp /etc/apt/sources.list /etc/apt/sources.list.original

et

sudo cp /var/lib/dpkg/status /var/lib/dpkg/status.original

Vider votre cache apt

apt conserve un cache des packages récemment téléchargés pour économiser de la bande passante lorsqu'il est nécessaire de l'installer. Cela peut être contre-productif dans certains cas

Maintenant, pour le nettoyer, vous avez deux options

sudo apt-get clean 

Cela supprimera tous les paquets mis en cache appartenant au dossier /var/cache/apt/archives/ et /var/cache/apt/archives/partial sauf le .verrouiller les fichiers. Ceci est recommandé

sudo apt-get autoclean

Cela scanne les dossiers /var/cache/apt/archives/ et /var/cache/apt/archives/partial et vérifie si le paquet est toujours dans les dépôts et supprime ceux qui ne le sont pas


Correction des dépendances

Utilisation du mode fix-broken d'apt

sudo apt-get -f install

Cela amènera apt à rechercher les dépendances manquantes et à les corriger à partir des référentiels

Si la sortie indique que rien de nouveau n'a été installé ou mis à niveau, cela signifie qu'il a échoué.


Vérifier si toutes les sources requises sont activées

Type gksu software-properties-gtk et tu auras cette fenêtre

Assurez-vous que toutes les sources sont activées.

ensuite, accédez à l'onglet Autre logiciel et vérifiez si les PPA requis pour le logiciel à installer sont présents et activés. Essayez également de désactiver certains PPA qui pourraient avoir des paquets cassés

maintenant, cours sudo apt-get update

Essayez d'installer le logiciel maintenant

Sélection d'un meilleur serveur à partir duquel télécharger

Type gksu software-properties-gtk et tu auras cette fenêtre

Cliquez sur le téléchargement dans la liste déroulante et sélectionnez autre

Cliquez sur Sélectionner Le Meilleur Serveur

Exécuter sudo apt-get update

Essayez d'installer le logiciel

aussi, essayez d'utiliser sudo apt-get install -f


Purge du PPA

Il s'agit d'un outil utilisé pour purger les ppa cassés/indésirables et leurs applications

Pour l'installer, exécutez

sudo apt-get install ppa-purge

Mais, considérant la question apt est cassé, donc la commande ci-dessus échouera. Utilisez donc cette commande

mkdir ppa-purge && cd ppa-purge && wget http://mirror.pnl.gov/ubuntu/pool/universe/p/ppa-purge/ppa-purge_0.2.8+bzr56_all.deb && wget http://mirror.pnl.gov/ubuntu//pool/main/a/aptitude/aptitude_0.6.6-1ubuntu1_i386.deb && sudo dpkg -i ./*.deb

Utilisez maintenant la purge ppa

sudo ppa-purge ppa:someppa/ppa  

Y-Gestionnaire de PPA

Y-PPA Manager est une application graphique qui vous aide à gérer les PPA et divers problèmes associés

Pour l'installer

sudo add-apt-repository ppa:webupd8team/y-ppa-manager

et

sudo apt-get update

et

sudo apt-get install y-ppa-manager

Considérant la question, apt est cassé donc, utilisez ces commandes à la place

sudo su

et

32 Bits:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_i386.deb && dpkg -i ./*.deb

64 Bits:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_amd64.deb && dpkg -i ./*.deb

Maintenant, tapez y-ppa-manager

Cette fenêtre vous sera présentée

Double-cliquez sur avancé, et vous obtiendrez cette fenêtre

Effectuez les tâches suivantes décrites en noir


Mieux vaut prévenir que guérir

Il vaut mieux prévenir que de chercher cette question sur AskUbuntu :D

Alors, voici les directives pour vous protéger

Gardez votre système à jour

exécutez toujours la commande suivante régulièrement

sudo apt-get update&&sudo apt-get upgrade

ou, vous pouvez toujours utiliser Update Manager avec cette commande

gksu update-manager

Utilisation uniquement de PPA de confiance

N'utilisez que des PPA destinés à être utilisés sur Ubuntu également, n'utilisez que des PPA avec des sources fiables. En fait, le paquet se trouve peut-être déjà dans les référentiels ubuntu

Sauvegarder quand tout va bien et le restaurer plus tard

Pour cela, vous avez besoin de Y-PPA-Manager. Les étapes pour l'installer sont données ci-dessus.

Exécutez cette commande pour ouvrir Y-PPA-Manager

y-ppa-manager

Cette fenêtre vous sera présentée

Double-cliquez sur avancé, et vous obtiendrez cette fenêtre

Exécutez ceci:

On vous demandera d'économiser un goudron.fichier gz avec une boîte de dialogue similaire à celle ci-dessous. Enregistrez-le dans une autre partition ou un endroit sûr

Plus tard, lorsque vous aurez besoin de le restaurer à nouveau, suivez les étapes similaires et lorsque vous arriverez à la boîte de dialogue avancée, cliquez dessus:

Il vous sera demandé de restaurer à partir de la sauvegarde précédente que vous avez enregistrée auparavant avec une boîte de dialogue similaire à celle ci-dessous


Vous ne travaillez toujours pas?

Les erreurs de dépendance de paquet ne sont pas toujours génériques et dépendent du paquet à installer.

Si suivre toutes les étapes indiquées pour corriger l'erreur ne fonctionne pas pour vous, vous pouvez toujours demander sur Demandez à Ubuntu

Voici quelques commandes dont vous avez besoin pour publier la sortie de

sudo apt-get install packagename

et

cat /etc/apt/sources.list

et

cat /etc/apt/sources.list.d/*

(Merci à Basharat Sial)

Il existe également d'autres fichiers/commandes dont vous avez besoin, dont la sortie peut être spécifique à une erreur, et les utilisateurs vous inviteront probablement dans les commentaires à publier le fichier / la commande.

Jusqu'à présent, ces réponses se concentrent sur la façon d'aider le système à résoudre automatiquement un tel problème, en espérant principalement qu'il se résoudra lui-même, mais pas sur la compréhension de la façon d'enquêter sur les dépendances. Il est important d'essayer de vous assurer d'abord que vos listes de paquets sont à jour; assurez-vous toujours qu'une simple mise à jour ou un effacement du cache ne résout pas le problème avant de creuser plus profondément. Si tout dans les coulisses fonctionne comme il se doit, cependant, il est primordial de comprendre les dépendances. Parfois, les couches de dépendances peuvent sembler écrasantes, mais le concept est simple et essentiel pour comprendre comment le logiciel est installé / désinstallé dans un système Ubuntu.

Je recommande vivement aptitude à toute personne utilisant un .système basé sur deb, tel que Debian, Kali, Ubuntu ou l'un de ses dérivés. Il fournit une interface pour parcourir les couches de dépendances, y compris les packages recommandés et suggérés. C'est un outil inestimable lorsque apt-get n'offre pas de solution à un conflit et pour visualiser les dépendances en général. (Synaptique est également disponible dans Ubuntu.)

Le résolveur de conflits d'Aptitude vous guidera à travers les combinaisons possibles de packages installés/supprimés/mis à niveau/etc qui satisfont vos actions demandées sans conflit. Cela peut souvent réussir même lorsque apt est incapable de trouver une solution. En tant qu'utilisateur d'Ubuntu, il n'y a normalement pas de situations qui vous obligent à rechercher pourquoi un package particulier est installé ou provoque un conflit, mais c'est presque inévitable car vous utilisez davantage le système.

>package1: Dépend: package2 (=1.8) mais 1.7.5-1ubuntu1 doit être installé

Explication du message:

  1. Pour que votre installation soit terminée, le package1 a besoin du package2.
  2. >le package2 doit être disponible dans la version = 1.8
  3. Le gestionnaire de paquets a vérifié tous les dépôts et n'a trouvé que la version 1.7.5 - 1ubuntu1 qui pourrait être installée, ce qu'il ne fera pas car c'est < 1.8

Fixer

Il n'y a PAS de bonne réponse unique à cette question et il n'y a PAS de réponse simple.

Il existe de nombreux scénarios pour lesquels cela peut se produire et il faut étudier toutes les options et essayer de résoudre les conditions préalables qui conduisent à cette erreur.

Scénario A:

>>Tous les dépôts auxquels vous avez accès n'ont pas package2 dans la version = 1.8, vous devrez donc trouver un dépôt qui le fait. Si vous ne parvenez pas à trouver un référentiel avec des versions =1.8, vous devrez peut-être créer et installer package2 à partir des sources. Et puis essayez d'installer package1.

Si vous voulez savoir comment construire un paquet à partir des sources, consultez d'autres questions / réponses ou publiez-en une nouvelle.

Scénario B:

>Les dépôts incluent package2 dans une version = 1.8 mais le gestionnaire de paquets souhaite toujours installer une version plus ancienne (1.7.5).

La raison en est peut-être que les versions ultérieures de package2 ont été construites par une technologie plus récente qui n'est pas prise en charge par d'autres packages que vous avez déjà installés.

>Cela pourrait ne pas être possible de corriger du tout. Vous pouvez essayer d'utiliser apt ou synaptic et rechercher toutes les versions du package2 qui sont disponibles dans les dépôts, et essayer d'installer une version spécifique = 1.8

>Si vous avez d'autres paquets incompatibles et que vous faites cela, vous obtiendrez une liste de messages d'erreur similaires pour tous les autres paquets qui empêchent l'installation de package2=1.8.

>>>Dans ce cas, vous avez un problème plus important. Vous vouliez installer package1, qui a besoin que package2 soit = 1.8, mais package2 en version =1.8 nécessite que package3 soit en version = 6.7 et vous avez package3 version 6.3

Le fait est que le gestionnaire de paquets (APT) essaie de résoudre toutes ces dépendances automatiquement si c'est possible. Quand il dit que ce n'est pas possible (et émet un message comme dans la question), alors vous devriez lui faire confiance.

Si vous décidez de ne pas faire confiance au gestionnaire de paquets et si vous êtes sûr de ne pas avoir de problèmes, vous pouvez essayer de forcer l'installation des versions spécifiques nécessaires de tous les paquets, une par une, et espérer que tout ira bien.

Attention, faire cela pour les paquets système peut créer de sérieux problèmes. Vous pouvez vous verrouiller hors du système, bloquer les services critiques, etc.

Scénario C:

Quelles que soient les raisons du problème, vous pouvez toujours configurer la compilation manuelle et construire le package nécessaire et toutes ses dépendances dans les versions exactes nécessaires à partir des sources. Avec cette option, vous pouvez conserver ce que vous avez construit dans un répertoire séparé et en dehors du chemin système afin qu'il ne crée pas de conflits avec le système. C'est probablement la solution la plus propre, et parfois peut être plus rapide à faire.

Scénario D:

Le gestionnaire de paquets a accès à des informations obsolètes sur les paquets et ne peut donc pas trouver de solution. Regardez dans les autres réponses.

Scénario E:

Le gestionnaire de paquets a un bogue dans le code de résolution des dépendances.

Vous devez vérifier que c'est vraiment le cas, puis émettre une demande de bogue.

...

Scénario Z:

Il pourrait y avoir d'autres scénarios.

Par exemple, les responsables de paquets auraient pu se tromper et ne pas vérifier que package1 fonctionnerait même avec la version de package2 < 1.8 et dans la spécification, ils ont défini des dépendances incorrectes.

Ces méthodes doivent être suivies chaque fois que vous obtenez des erreurs concernant les dépendances non satisfaites

Après avoir suivi les instructions, essayez d'installer le logiciel. Au moins une de ces méthodes devrait travailler pour vous

1. Avant d'essayer une nouvelle commande ou d'ajouter un nouveau ppa, essayez ceci

Nettoyage du cache apt:

sudo apt-get clean

Nettoyage des dépendances inutilisées:

sudo apt-get autoremove

Mise à jour d'apt-cache

sudo apt-get update

Cela supprimera tout le cache et téléchargera un nouveau cache. Cela devrait être fait pour obtenir de nouveaux packages de cache et des mises à jour plus récentes.

2. Essayer sudo apt-get install -f.

Il donnera probablement quelques suggestions sur la suppression et l'installation de packages, faites ce qui semble raisonnable.

3. Changer le Download Server de Software Sources Parce que parfois les fichiers sur un serveur sont corrompus.

enter image description here
enter image description here

4. Cela se produit également si vous avez ajouté un ppa externe pour la dépendance cassée.Essayez de supprimer ce ppa en

  • soit en tapant sudo add-apt-repository --remove ppa:someppa/ppa et puis supprimer manuellement les fichiers/bibliothèques installés par ppa

ou

  • purge d'un ppa (cela supprime également les fichiers installés)

    sudo apt-get install ppa-purge   #a one time install sudo ppa-purge ppa:someppa/ppa  

5. Si non 4 n'est pas votre cas, essayez au moins de supprimer le package qui est affiché comme une dépendance cassée.Ensuite, essayez à nouveau l'installation.Cela aurait fonctionné pour un certain nombre de personnes.

6. Ajoutez toujours la version stable d'un référentiel/PPA.

7 Assurez-vous également que tous les référentiels officiels sont activés (dans Software Sources)

enter image description here

Veuillez ne pas activer le Proposed Updates comme ils sont destinés aux tests / développeurs.

enter image description here


Comme dit par doug:

Habituellement, la meilleure 1ère étape pour résoudre ce problème consiste à identifier la source de <pkg1> & <pkg2>.

>>De plus, il n'est pas noté que dans de nombreux cas, sinon la plupart des cas, "& lt;tout ce qui doit être installé" signifie vraiment "<tout ce qui est installé" et devrait être essayé d'être supprimé si rien d'autre ne fonctionne (comme au point 5).


Je continuerai à ajouter plus de choses que je trouverai à corriger unmet dependencies.

Dans la plupart des cas,l'installation du package via aptitude résoudra non satisfait dependencies.By défaut aptitude le paquet n'a pas été installé sur votre pc.So installez-le d'abord en exécutant,

sudo apt-get updatesudo apt-get install aptitude

puis,

sudo aptitude install packagename

exemple,

    avinash@avinash-Lenovo-IdeaPad-Z500:~ su sudo apt-get install ubuntu-sdkReading listes de paquets... Arbre de dépendances de DoneBuilding Lisant les informations d'état... Les paquets DoneSome n'ont pas pu être installés. Cela peut signifier que vous avez demandé une situation impossible ou si vous utilisez la distribution non établie, que certains paquets requis n'ont pas encore été créés ou ont été déplacés de la distribution.Les informations suivantes peuvent aider à résoudre la situation:Les packages suivants ont des dépendances non satisfaites: ubuntu-sdk: Dépend de: qtcreator-plugin-ubuntu mais il ne sera pas installé: Impossible de corriger les problèmes, vous avez des packages cassés.

Installation du paquet via aptitude

avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo aptitude install ubuntu-sdkThe NOUVEAUX paquets suivants seront installés: apparmor-easyprof{a} apparmor-easyprof-ubuntu{a} à{a} build-essential{a} sur{a} cliquez-apparmor{a} cliquez-dev{a} cliquez-doc{a} cordova-ubuntu-2.8 cordova-ubuntu-2.8-exemples{a} debhelper{a} devscripts{a} dh-apparmor{a} dh-make{a} distro-info-data{a} dpkg-dev{a} dput{a} g++{a} g++-4.8{a} geoclue-tzigane{a} libalgorithm-diff-perl{a} libalgorithm-diff-xs-perl{a} libalgorithm-fusion-perl{a} libboost-filesystem1.53.0{a} libboost-programme-options1.53.0{a} libboost-regex1.53.0{a} libbotan-1.10-0{a} libdee-qt5-3{a} libdistro-info-perl{a} libexporter-lite-perl{a} libglib2.0-dev{a} libgstreamer-plugins-base1.0-dev{a} libgstreamer1.0-dev{a} libgypsy0{a} libhud2{a} libio-filant-perl{a} libjs-jquery{a} libjs-sphinxdoc{a} libjs-trait de soulignement{a} liblockdev1{a} libmail-sendmail-perl{a} libparse-debcontrol-perl{a} libpcre3-dev{a} libpcrecpp0{a} libpoppler-qt5-1{a} libqdjango-db0{a} libqgsttools-p1{a} libqt5clucene5{a} libqt5contacts5{a} libqt5declarative5{a} libqt5designer5{a} libqt5designercomponents5{a} libqt5feedback5{a} libqt5help5{a} libqt5location5-plugins{a} libqt5multimedia5{a} libqt5multimedia5-plugins libqt5multimediaquick-p5{a} libqt5multimediawidgets5{a} libqt5organizer5{a} libqt5qml-graphicaleffects{a} libqt5script5 libqt5scripttools5{a} libqt5svg5{a} libqt5svg5-dev libqt5systeminfo5{a} libqt5v8-5-dev libqt5versit5{a} libqt5versitorganizer5{a} libqt5webkit5-dev libqt5webkit5-qmlwebkitplugin{a} libqt5xmlpatterns5{a} libqt5xmlpatterns5-dev libstdc++-4.8-dev{a} libsys-hostname-long-perl{a} libthumbnailer0{a} libu1db-qt5-3{a} libunity-action-qt1{a} libupstart-app-launch1{a} libusermetricsinput1{a} libxml2-dev{a} libxslt1-dev{a} po-debconf{a} python3-apparmor-cliquez sur{a} python3-cliquez sur{a} python3-la magie{a} qmlscene qt3d5-dev qtbase5-doc{a} qtcreator{a} qtcreator-doc{a} qtcreator-plugin-ubuntu{a} qtcreator-plugin-ubuntu-common{a} qtdeclarative5-comptes-plugin qtdeclarative5-cordoue-2.8-plugin{a} qtdeclarative5-dev-tools qtdeclarative5-doc-html{a} qtdeclarative5-folderlistmodel-plugin qtdeclarative5-friends0.2 qtdeclarative5-localstorage-plugin qtdeclarative5-particules-plugin qtdeclarative5-poppler1.0 qtdeclarative5-qtaudioengine-plugin qtdeclarative5-qtfeedback-plugin{a} qtdeclarative5-qtlocation-plugin qtdeclarative5-qtmultimedia-plugin{a} qtdeclarative5-qtorganizer-plugin qtdeclarative5-qtquick2-plugin{a} qtdeclarative5-qtsensors-plugin qtdeclarative5-u1db1.0 qtdeclarative5-ubuntu-ui-extras-browser-plugin{a} qtdeclarative5-ubuntu-ui-extras-browser-plugin-actifs{a} qtdeclarative5-ubuntu-ui-trousse d'outils-plugin{a} qtdeclarative5-unité-action-plugin{a} qtdeclarative5-usermetrics0.1 qtdeclarative5-fenêtre-plugin{a} qtdeclarative5-xmllistmodel-plugin qtgraphicaleffects5-doc{a} qtlocation5-dev{a} qtmultimedia5-dev qtmultimedia5-doc{a} qtmultimedia5-doc-html{a} qtscript5-dev qtscript5-doc{a} qtscript5-doc-html{a} qtsensors5-dev{a} qtsvg5-doc{a} qtsvg5-doc-html{a} qttools5-dev qttools5-dev-tools qttools5-doc{a} qtwebkit5-doc-html{a} schroot{a} schroot-common{a} sqlite3{a} ubuntu-html5-conteneur ubuntu-html5-sdk{ab} ubuntu-html5-thème{a} ubuntu-html5-thème-exemples d'ubuntu sdk ubuntu-sdk-libs ubuntu-sdk-libs-dev{a} ubuntu-ui-trousse d'outils-doc{a} ubuntu-ui-trousse d'outils-exemples{a} ubuntu-ui-trousse d'outils-thème{a} unité-action-doc{a} upstart-app-lancement{a} upstart-app-lancement-des outils de{a} usermetricsservice{a} wdiff{a} zlib1g-dev{a} Les paquets suivants seront mis à jour: rpc-4.8 gcc-4.8 gcc-4.8-base palette libasan0 libatomic1 libgcc-4.8-dev libgcc1 libglib2.0-0 libglib2.0-bin libgomp1 libitm1 libquadmath0 libstdc++6 libtsan0 15 paquets mis à jour, 151 nouvellement installés, 0 à enlever et 293 non mis à jour.Besoin d'obtenir 108 Mo/126 Mo d'archives. Après le déballage, 273 Mo seront utilisés.Les packages suivants ont des dépendances non satisfaites: ubuntu-html5-sdk: Depends: qtdeclarative5-ubuntu-webapps-api qui est un package virtuel.                    Dépend: ubuntu-html5-ui-toolkit mais il ne sera pas installé.Les actions suivantes résoudront ces dépendances: Conservez les packages suivants dans leur version actuelle: 1) qtcreator-plugin-ubuntu [Non installé] 2) ubuntu-html5-sdk [Non installé] 3) ubuntu-sdk [Non installé] Laissez les dépendances suivantes non résolues: 4) libhud-client2 recommande hud (= 13.10.1+13.10.20131014-0ubuntu1)5) qtcreator-plugin-ubuntu-common recommande qtcreator-plugin-Ubuntuaccepter cette solution? [A / n / q/?] le NOUVEAUX paquets suivants seront installés: apparmor-easyprof{a} apparmor-easyprof-ubuntu{a} build-essential{a} sur{a} cliquez-apparmor{a} cordova-ubuntu-2.8 debhelper{a} dh-apparmor{a} dh-make{a} dpkg-dev{a} g++{a} g++-4.8{a} geoclue-tzigane{a} libalgorithm-diff-perl{a} libalgorithm-diff-xs-perl{a} libalgorithm-fusion-perl{a} libdee-qt5-3{a} libglib2.0-dev{a} libgstreamer-plugins-base1.0-dev{a} libgstreamer1.0-dev{a} libgypsy0{a} libhud2{a} libjs-jquery{a} libmail-sendmail-perl{a} libpcre3-dev{a} libpcrecpp0{a} libpoppler-qt5-1{a} libqdjango-db0{a} libqgsttools-p1{a} libqt5clucene5{a} libqt5contacts5{a} libqt5designer5{a} libqt5designercomponents5{a} libqt5feedback5{a} libqt5help5{a} libqt5location5-plugins{a} libqt5multimedia5{a} libqt5multimedia5-plugins libqt5multimediaquick-p5{a} libqt5multimediawidgets5{a} libqt5organizer5{a} libqt5qml-graphicaleffects{a} libqt5script5 libqt5scripttools5{a} libqt5svg5{a} libqt5svg5-dev libqt5systeminfo5{a} libqt5v8-5-dev libqt5versit5{a} libqt5versitorganizer5{a} libqt5webkit5-dev libqt5webkit5-qmlwebkitplugin{a} libqt5xmlpatterns5{a} libqt5xmlpatterns5-dev libstdc++-4.8-dev{a} libsys-hostname-long-perl{a} libthumbnailer0{a} libu1db-qt5-3{a} libunity-action-qt1{a} libupstart-app-launch1{a} libusermetricsinput1{a} libxml2-dev{a} libxslt1-dev{a} po-debconf{a} python3-apparmor-cliquez sur{a} python3-cliquez sur{a} qmlscene qt3d5-dev qtdeclarative5-comptes-plugin qtdeclarative5-cordoue-2.8-plugin{a} qtdeclarative5-dev-tools qtdeclarative5-folderlistmodel-plugin qtdeclarative5-friends0.2 qtdeclarative5-localstorage-plugin qtdeclarative5-particules-plugin qtdeclarative5-poppler1.0 qtdeclarative5-qtaudioengine-plugin qtdeclarative5-qtfeedback-plugin{a} qtdeclarative5-qtlocation-plugin qtdeclarative5-qtmultimedia-plugin{a} qtdeclarative5-qtorganizer-plugin qtdeclarative5-qtquick2-plugin{a} qtdeclarative5-qtsensors-plugin qtdeclarative5-u1db1.0 qtdeclarative5-ubuntu-ui-extras-browser-plugin{a} qtdeclarative5-ubuntu-ui-extras-browser-plugin-actifs{a} qtdeclarative5-ubuntu-ui-trousse d'outils-plugin{a} qtdeclarative5-unité-action-plugin{a} qtdeclarative5-usermetrics0.1 qtdeclarative5-fenêtre-plugin{a} qtdeclarative5-xmllistmodel-plugin qtlocation5-dev{a} qtmultimedia5-dev qtscript5-dev qtsensors5-dev{a} qttools5-dev qttools5-dev-tools sqlite3{a} ubuntu-html5-conteneur ubuntu-html5-thème{a} ubuntu-html5-thème-exemples ubuntu-sdk-libs ubuntu-ui-trousse d'outils-thème{a} upstart-app-lancement{a} upstart-app-lancement-des outils de{un} usermetricsservice{a} wdiff{a} zlib1g-dev{a} Les paquets suivants seront mis à jour: rpc-4.8 gcc-4.8 gcc-4.8-base palette libasan0 libatomic1 libgcc-4.8-dev libgcc1 libglib2.0-0 libglib2.0-bin libgomp1 libitm1 libquadmath0 libstdc++6 libtsan0 15 paquets mis à jour, 108 nouvellement installés, 0 à enlever et 293 non mis à jour.Besoin d'obtenir 27,1 Mo/45,8 Mo d'archives. Après le déballage, 104 Mo seront used.Do tu veux continuer? [O / n/?] 

Ma réponse est similaire à celle de rick ci-dessus.

Utiliser apt-get clean, apt-get autoclean, apt-get autoremove, apt-get upgrade, apt-get update, apt-get -u dist-upgrade, etc. tout n'a pas marché pour moi.

J'ai finalement résolu ce problème en descendant dans l'arborescence des dépendances via apt-get install, illustré par un exemple ci-dessous. Dans mon cas, je voulais installer libmagickwand-dev:

apt-get install libmagickwand-dev

J'ai eu cette erreur:

The following packages have unmet dependencies: libmagickwand-dev : Depends: libmagickcore4-extra (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed                     Depends: libmagickcore-dev (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed

Alors, j'ai couru apt-get install pour l'une des dépendances défaillantes:

apt-get install libmagickcore-devThe following packages have unmet dependencies: libmagickcore-dev : Depends: libmagickcore4-extra (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed                     Depends: libgraphviz-dev but it is not going to be installed

Je suis descendu plus bas dans l'arbre:

apt-get install libgraphviz-dev

avec une autre erreur:

The following packages have unmet dependencies: libgraphviz-dev : Depends: libgvc5 (= 2.26.3-10ubuntu1) but it is not going to be installed

Une fois de plus plus profondément dans l'arbre:

apt-get install libgvc5

Pour une raison étrange, cela a réussi et j'ai pu installer le package d'origine avec lequel je voulais apt-get install libmagickwand-dev:

Reading package lists... DoneBuilding dependency tree       Reading state information... DoneThe following extra packages will be installed:  libcdt4 libgd2-xpm libgraph4 libpathplan4Suggested packages:  libgd-toolsThe following NEW packages will be installed:  libcdt4 libgd2-xpm libgraph4 libgvc5 libpathplan40 upgraded, 5 newly installed, 0 to remove and 2 not upgraded.Need to get 808 kB of archives.After this operation, 2,320 kB of additional disk space will be used.Do you want to continue [Y/n]?

Excellentes réponses! Mais aujourd'hui, mon cas semble différent du vôtre. Voici mon conseil.

Problème:

J'ai échoué à installer apache2 dans ubuntu 10.10.

rick@wen-VirtualBox:~$ sudo apt-get install apache2Reading package lists... DoneBuilding dependency tree      Reading state information... DoneSome packages could not be installed. This may mean that you haverequested an impossible situation or if you are using the unstabledistribution that some required packages have not yet been createdor been moved out of Incoming.The following information may help to resolve the situation:The following packages have unmet dependencies: apache2 : Depends: apache2-mpm-worker (= 2.2.16-1ubuntu3) but it is not going to be installed or                    apache2-mpm-prefork (= 2.2.16-1ubuntu3) but it is not going to be installed or                    apache2-mpm-event (= 2.2.16-1ubuntu3) but it is not going to be installed or                    apache2-mpm-itk (= 2.2.16-1ubuntu3) but it is not going to be installed           Depends: apache2.2-common (= 2.2.16-1ubuntu3) but it is not going to be installedE: Broken packages

Solution:

Ma méthode consiste à ajouter le package dépendant dans la liste d'installation.

Si 'sudo apt-get install apache2' a échoué, essayez 'sudo apt-get install apache2 apache2.2-commun'.

Tu vois? apache2.2-common provient du journal des erreurs de l'étape précédente.

Enfin, j'ai trouvé qu'il y avait une chaîne de dépendances comme celle-ci:

 apache2.2-common <-- apache2.2-bin <-- libaprutil1-ldap <-- libaprutil1

Pour les 3 premiers paquets, apt-get log m'a dit 'ne sera pas installé',

mais pour le dernier paquet, il affiche 'libaprutil1-ldap: Depends: libaprutil1 (= 1.3.9+dfsg-3build1) mais 1.3.9+dfsg-3ubuntu0.10.10. 1 doit être installé'

J'ai une version différente existant dans ma bibliothèque, donc:

sudo apt-get remove libaprutil1sudo apt-get install apache2

Maintenant c'est ok.

qu'est-ce que l'erreur de dépendances non satisfaites

Sur Ubuntu, les packages sont le principal moyen de construction, de déploiement et d'installation des logiciels. Très simplement, les packages sont une alternative au téléchargement, à la construction et à l'installation de logiciels à partir de zéro. Ils offrent une foule d'avantages en termes d'installation, de retrait, de surveillance et de gestion des interactions entre les logiciels par rapport au modèle standard "build from source". Ubuntu utilise un système d'empaquetage centralisé, c'est-à-dire que chaque paquet est lié à d'autres paquets .Lorsque nous installons un package, ses dépendances seront installées ,l'erreur de dépendances non satisfaites se produit lorsque les dépendances du package ne sont pas disponibles pour l'installation

Causes possibles

1.Computer is not connected to the Internet2.The repository containing the depandancy package is not enabled3.Package catalog is not updated4.The version of the depandancy in the current repository is old5.Software index is broken6.The depandancy is not available for ubuntu

Essayons de le résoudre

  1. Connectez-vous à Internet: D
  2. Assurez-vous que tous les référentiels par défaut sont activés

    >-Vous pouvez facilement les ajouter dans le Software Center>>>>- Modifier-Sources du logiciel-Autres sources-Ajouter"

    >- Démarrez le Software Center.

    >-. Dans le panneau aller à Edit et sélectionnez Software Sources.

    edit-software-sources

    >- Assurez-vous que tous les dépôts sont vérifiésenter image description here

  3. Mettre à jour le catalogue de logiciels

    cliquez sur l'icône en haut à droite et choisissez mettre à jour-entrée disponible dans le menu
    enter image description here

et appuyez sur le bouton de vérification

4.type ctrl+alt+t pour ouvrir le terminal et taper sudo apt-get install -f

5.Purger le ppa récemment ajouté à l'aide de ppa-purge ppa-purge

Ce programme désactive un PPA de vos sources logicielles et ramène votre système aux packages officiels Ubuntu. Vous pouvez l'utiliser pour ramener votre système à la normale après avoir testé une nouvelle version à partir d'un PPA.

Syntaxe

sudo ppa-purge ppa:<repository-name>/<subdirectory>

Exemple

sudo ppa-purge ppa:ubuntu-mozilla-daily/ppa
  1. ouvrez le centre logiciel et essayez d'installer un logiciel, Si la boîte de dialogue suivante apparaît, appuyez sur le bouton Réparer et attendez

enter image description here

Autretype ctrl+alt+t pour ouvrir le terminal et taper sudo apt-get install -f et suivez les instructions à l'écran

Si une erreur persiste, n'hésitez pas à la demander dans askbuntu

...n'oubliez pas ' build-dep`

En plus de ces réponses ci-dessus -- Je dois admettre que je suis surpris que personne n'ait mentionné cette approche qui est ce que j'ai toujours utilisé comme "solution miracle" à chaque fois que je rencontrais des conflits apt-get ou des paquets non résolus (ou même si le système est têtu....ha!).

EDITÉ: en utilisant sudo dpkg -r [package] est encouragé car il a une fonction de suppression assez puissante. Depuis apt-get travaille aux côtés de dpkg, ce qui signifie apt-get obéira dpkg fonction.

  sudo dpkg -r [package]  sudo apt-get build-dep [package]    ## pre-install all deps for the package

Vous appelez apt-get pour purger le paquet défaillant que vous essayiez d'installer dans le système, puis vous appelez la commande build-dep, qui apt-get récupérera et installera les dépendances appartenant individuellement à ce paquet, de cette façon elles satisferont le paquet avant. Puis enfin, appelez l'installation apt-get:

sudo apt-get install [package]

....'Ugh! Tordons ton bras jusqu'à ce que tu cries " Oncle!"'

Cela s'est rarement produit pendant mes longues années d'utilisation de Linux, mais je me suis retrouvé à utiliser cette approche rarement et j'ai réussi. Ceci est un exemple de la récente lutte que j'ai eue il y a un mois avec les paquets mysql-client/mysql-server. Après une douzaine de tentatives infructueuses pour réinitialiser mon mot de passe root avec mysql-server (même via tech skip-grant-tables techqiue mais qui ont échoué), j'ai finalement réussi à tordre le bras de Linux jusqu'à ce qu'il crie " Oncle!"':

sudo dpkg -r mysql-server mysql-clientsudo apt-get autoclean  ## this dumps any copy of existing package to prevent apt-get from "re-using" it.sudo apt-get build-dep mysql-client    ## one package at a time, starting with client firstsudo apt-get install mysql-clientsudo apt-get build-dep mysql-serversudo apt-get install mysql-server

apt-get autoclean est la clé de cette solution

Actually “the exact package name”, while not relevant in your question, is extremely relevant to any individual’s issue in this regard. Usually the best 1st step to resolving this is to identify the source of pkg1 & pkg2. This seems to have been overlooked in the answers, most of which are quite good otherwise. Additionally not noted is that in many, if not most cases, " doit être installé " signifie vraiment "

Oubliez le nom exact du paquet. Cela n’a aucun rapport avec cette question. J’essaie de créer une [question canonique] (Where to post a "canonical answer" when it's not in response to a specific question? - Meta Stack Exchange). En tant que tel, le package exact n’est pas pertinent dans ce cas spécifique.

@doug Ajoutez ça comme réponse et non comme commentaire, c’est plutôt bien! :slight_smile:

Oh, et où est ma question de dépannage? :smiley:

@Braiam Whaaaat a un point cependant, la question n’est pas spécifique à un PPA et pas mal de réponses ne le sont pas non plus. Je sais que les deux premières réponses submergent un peu les autres, mais je ne suis pas sûr que changer la nature de la question soit la bonne solution, d’autant plus que vous annulez les autres réponses. Je le laisse pour l’instant car je n’ai pas de meilleure réponse mais c’est quelque chose à penser.

En fait, si vous voyez que chaque réponse a plus ou moins la même chose. Pourraient-ils être fusionnés dans un wiki communautaire?

Dans mon cas, ce type de problème était dû au fait que les mises à jour étaient désactivées pour toutes les sources sous Logiciels et mises à jour.

Voir What information do I need to solve an APT dependency issue? - Unix & Linux Stack Exchange

@whaa comme vous pouvez le voir dans la méta discussion, le changement était délibéré et personne n’a soulevé de problèmes avec cela. Malgré ce que vous pouvez penser, le changement est nécessaire pour éviter plus d’abus de cette question, comme je l’ai souligné dans la méta-discussion.