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

540

Parfois, lorsque j'installe des choses, j'obtiens une erreur comme celle-ci:

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or 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 installed
E: Unable to correct problems, you have held broken packages.

Comment puis-je résoudre ça?

jrg
la source
33
Oubliez le nom exact du paquet. Cela n'a rien à voir avec cette question. Je tente de créer une question canonique . En tant que tel, le package exact n'est pas pertinent dans ce cas particulier.
Jrg
33
En réalité, "le nom exact du paquet", bien que non pertinent dans votre question, est extrêmement pertinent pour le problème de tout individu à cet égard. En général, la première étape pour résoudre ce problème consiste à identifier la source de pkg1 & pkg2. Cela semble avoir été négligé dans les réponses, dont la plupart sont plutôt bonnes autrement. En outre, il est à noter que dans beaucoup, sinon la plupart des cas, "<tout> doit être installé" signifie en réalité "<tout> est installé". Ceci est quelque chose qui a tendance à confondre de nombreux utilisateurs confrontés à cela et devrait également être inclus dans une réponse ci
Doug
5
@doug Ajoutez cela comme réponse et non comme commentaire, c'est plutôt bien! :)
jrg
1
@Braiam Whaaaat a raison, la question n'est pas spécifique à un PPA et bon nombre de réponses ne le sont pas non plus. Je sais que les deux premières réponses dépassent un peu les autres, mais je ne suis pas sûre 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 une chose à laquelle réfléchir.
Seth
2
Oh, et où est ma question de dépannage? : D
Seth

Réponses:

561

APT est un système de gestion de paquets pour Debian et les autres distributions Linux qui en découlent, telle que Ubuntu. Pour la plupart, APT est facile à utiliser pour l’installation, la suppression et la mise à jour de packages. Dans de rares cas, souvent lorsque vous mélangez des dépendances tierces, il est possible que apt-getvous obteniez une erreur indiquant qu'une installation de package n'a pas pu être terminée.

Solutions:

C'est toujours une bonne idée de sauvegarder les fichiers de configuration, par exemple /etc/apt/sources.list, afin de pouvoir annuler les modifications si nécessaire.

  • Si le errormontre quelque chose comme ça:

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

    Assurez-vous ensuite que les référentiels restrictedet universesont activés. Appuyez sur Alt+ F2, tapez software-properties-gtket appuyez sur Enter.

    Sous l' Ubuntu Softwareonglet, activez tous les référentiels.

  • Une cause possible de dépendances non satisfaites pourrait être une base de données de paquetages corrompue et / ou des paquets ne sont pas installés correctement. Pour résoudre ce problème, appuyez sur Alt+ Ctrl+ Tpour ouvrir le terminal et essayez d’exécuter l’une des commandes suivantes:

    sudo apt-get clean

    ou,

    sudo apt-get autoclean

    apt-get cleanefface le référentiel local des fichiers de package récupérés (les fichiers .deb). Il supprime tout sauf le fichier de verrouillage de / var / cache / apt / archives / et / var / cache / apt / archives / partial /. apt-get autocleanefface le référentiel local des fichiers de package récupérés, mais contrairement à apt-get cleancela, il ne supprime que les fichiers de package qui ne peuvent plus être téléchargés et 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:

    sudo apt-get -f install

    Le -fici signifie «réparer cassé». Aptva tenter de corriger les dépendances brisées. Si vous avez manuellement installé un paquet ayant des dépendances non satisfaites, apt-getinstallerez ces dépendances, si possible, sinon il pourrait simplement supprimer le paquet que vous avez installé afin de résoudre le problème.

    Puis lancez:

    sudo dpkg --configure -a

    Puis relancez ceci:

    sudo apt-get -f install

    Si le résultat est:

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

    Cela signifie que cela a échoué.

  • La solution suivante consiste à exécuter:

    sudo apt-get -u dist-upgrade

    S'il y a des paquets en attente, il est préférable de les éliminer. Les packages sont conservés en raison de conflits de dépendance aptimpossibles à résoudre. Essayez cette commande pour trouver et réparer les conflits:

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

    S'il ne peut pas résoudre les conflits, il se terminera par:

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

    Supprimez les packages en attente un par un, en s'exécutant à dist-upgradechaque fois, jusqu'à ce qu'il n'y ait plus de packages en attente. Puis réinstallez tous les paquets nécessaires. Veillez à utiliser cette --dry-runoption pour être pleinement informé des conséquences:

    sudo apt-get remove --dry-run nom-paquet

    Dans la mesure où supprimer le paquet que vous essayez d'installer n'est peut-être pas idéal, vous pouvez également essayer de trouver un référentiel contenant les paquetages dont vous avez besoin pour satisfaire les dépendances.

Enfin, si tout échoue, vous pouvez essayer de satisfaire vous-même les dépendances, soit en recherchant et en installant les packages nécessaires, soit en les installant à partir du source, puis en créant des packages « deb » pour eux.

Désactiver / Supprimer / Purger les PPA:

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

Les PPA sont l’une des causes les plus courantes de dépendances non satisfaites, en particulier lorsqu’elles sont utilisées pour mettre à niveau le paquet existant dans les référentiels Ubuntu. Pour résoudre le problème, vous avez trois options: désactiver, purger (revenir au paquet original dans les référentiels Ubuntu) ou supprimer PPA.

  • Désactiver:

    Désactiver 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: Ouvrez Software Center > Edit > Software SourcesOu,

    Hit Alt+ F2et courir software-properties-gtk.

    Cliquez sur l' Other Softwareonglet, vous verrez que chaque PPA a deux lignes ici, une pour les paquetages compilés et une pour la source, les Uncheckdeux 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 Ubuntu officiels et désactiver ce PPA. PPA Purge fait exactement cela. Pour installer PPA Purge, exécutez la commande suivante:

    sudo apt-get install ppa-purge

Mais, considérant que la question aptest cassée, la commande ci-dessus échouera. Alors utilisez 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 PPA Purge:

sudo ppa-purge ppa: someppa / ppa

Si la commande "ppa-purge" échoue pour une raison quelconque, vous ne pouvez pas exécuter "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 Checkdes deux lignes d'un PPA pour l’activer).

Remarque: PPA Purgene supprime pas les PPA ( peut-être à l'avenir ), vous devrez donc supprimer manuellement les PPA.

  • Retirer:

    Si le paquet installé à partir d'un PPA n'existe pas dans les référentiels officiels Ubuntu, il PPA Purgen'est pas recommandé de l'utiliser, car il n'y a rien à rétrograder et PPA Purgene le supprime pas non plus. Pour supprimer un PPA et des 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 --purge nom-paquet
    sudo add-apt-repository - Supprimer ppa: someppa / ppa
    sudo apt-get autoclean
    

Sinon, vous pouvez utiliser Y PPA Managerpour 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?

  • Maintenir Ubuntu à jour. Ubuntu notifie automatiquement lorsque des mises à jour sont disponibles, vous pouvez également vérifier les mises à jour disponibles en cliquant sur Session Indicatordans le panneau Unity:

    Ou bien, appuyez sur Alt+ Ctrl+ Tpour ouvrir le terminal et exécuter les commandes suivantes:

    sudo apt-get update
    sudo 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 les plus récentes de vos packages installés.

  • Si vous décidez d'ajouter d'autres référentiels à sources.list, assurez-vous que le référentiel est conçu pour fonctionner (et est connu pour fonctionner) avec Ubuntu. Les référentiels qui ne sont pas conçus pour fonctionner avec votre version d'Ubuntu peuvent introduire des incohérences dans votre système et vous obliger à effectuer une nouvelle installation. Assurez-vous également que vous avez vraiment besoin d'ajouter des référentiels externes, car les logiciels que vous recherchez ont peut-être déjà été introduits dans les référentiels officiels! La source
  • Supprimer les AAE en double. Y PPA Manager(Guide d'installation à la fin de la réponse) peut facilement numériser et supprimer les PPA en double.

    • Appuyez sur Alt+ F2et exécutez y-ppa-managerpour ouvrir Y PPA Manager.
    • Une fois ouvert, double-cliquez ou appuyez Entersur Advanced.
    • Dans la fenêtre résultante, sélectionnez Scan and remove duplicate PPAset cliquez sur OK.

entrez la description de l'image ici

Obtenir de l'aide:

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

  • Sortie de l'erreur réelle:

    sudo apt-get install nom-paquet
  • Cela montrera votre sources.list:

    cat /etc/apt/sources.list
  • Ceci affichera la liste des AAE (le cas échéant):

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

Sources supplémentaires:


Y Manager PPA : Y PPA Manager est un guichet unique pour tous vos besoins en APP.

y manager ppa

Voici certaines de ses caractéristiques:

  • rechercher des forfaits dans tous les AAE Launchpad
  • lister et télécharger les paquets dans un PPA
  • ajouter / supprimer / purger un PPA
  • sauvegarder et restaurer les sources PPA
  • supprimer les sources de PPA en double

Pour installer Y PPA Manager, ouvrez le terminal en appuyant sur Alt+ Ctrl+ Tet exécutez les commandes suivantes:

sudo add-apt-repository ppa: webupd8team / y-ppa-manager
sudo apt-get update
sudo apt-get installer y-ppa-manager

Considérant que la question aptest cassée, utilisez plutôt ces commandes

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
Basharat Sialvi
la source
3
Comment installer des dépendances non résolues si apt est cassé?
Tachyons
4
C’était une aide précieuse pour moi… une nouvelle installation de Lubuntu 12.04 et n’arrivait pas à installer des logiciels de base tels que gvim (vim-gtk) ou openssh-server. J'avais essayé toutes sortes d'options de ligne de commande, notamment faire un diff de /etc/apt/sources.list depuis cette machine et un autre (qui fonctionnait correctement sous Xubuntu). Après avoir suivi ce guide, j’ai trouvé que dans software-properties-gtk, la case pour le dépôt principal avait été décochée! Problème résolu!
memilanuk
1
Parfois, vous avez vraiment eu des paquets cassés ... Le mieux est donc de les détenir et de les supprimer. Voir le site askubuntu.com/a/363244/16395
Rmano le
3
Personne n'a réellement expliqué comment installer ces paquets avec des versions de dépendances non satisfaites. Dieu! Je veux juste forcer l'installation d'anciennes versions de paquets.
marines
3
Cela n'a pas fonctionné pour moi: S
AlvaroAV
87

Remarque: Toutes les commandes devant être exécutées doivent être exécutées dans le terminal, qui peut être ouvert avec Ctrl+ Alt+ Tou en recherchant un terminal dans le tiret.

Est-ce vraiment cassé?

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

sudo apt-get update

Étapes 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

Effacer votre apt-cache

aptconserve un cache des paquets récemment téléchargés pour économiser la bande passante lorsqu’elle doit être installée. Cela peut être contre-productif dans certains cas

Maintenant, pour le nettoyer, vous avez deux options

sudo apt-get clean 

Cela supprimera tous les packages en cache appartenant au dossier /var/cache/apt/archives/, /var/cache/apt/archives/partialà l'exception des fichiers .lock. Ceci est recommandé

sudo apt-get autoclean

Ceci analyse les dossiers /var/cache/apt/archives/et /var/cache/apt/archives/partialvérifie si le paquet est toujours dans les référentiels et supprime ceux qui ne le sont pas.


Correction des dépendances

Utiliser le mode correctif d'apt

sudo apt-get -f install

Cela entraînera apt à rechercher les dépendances manquantes et à les réparer à partir des référentiels

Si la sortie indique qu'aucune nouvelle installation n'a été installée ou mise à niveau, cela a échoué.


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

Tapez gksu software-properties-gtket vous aurez cette fenêtre

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

Ensuite, allez sur l'onglet Autre logiciel et vérifiez si les PPA requis pour le logiciel à installer sont là et sont activés. Essayez également de désactiver certains PPA pouvant contenir des paquets cassés.

maintenant, cours sudo apt-get update

Essayez d'installer le logiciel maintenant

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

Tapez gksu software-properties-gtket vous aurez cette fenêtre

Cliquez sur la case Télécharger depuis la liste déroulante et sélectionnez une autre option.

Cliquez sur Sélectionner le meilleur serveur

Courir sudo apt-get update

Essayez d'installer le logiciel

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


Purge PPA

Ceci est un outil utilisé pour purger les PPA cassés / indésirables et leurs applications.

Pour l'installer, lancez

sudo apt-get install ppa-purge

Mais, considérant que la question aptest cassée, la commande ci-dessus va échouer. Alors utilisez 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

Maintenant, utilisez ppa purge

sudo ppa-purge ppa:someppa/ppa  

Y-PPA Manager

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 que la question aptest cassée, utilisez plutôt ces commandes

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

Vous serez présenté avec cette fenêtre

Double-cliquez sur Advanced 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 chercher cette question sur AskUbuntu: D

Alors, voici les lignes directrices pour vous garder en sécurité

Gardez votre système à jour

toujours exécuter 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

Utiliser uniquement des PPA de confiance

Utilisez uniquement les PPA destinés à être utilisés sur Ubuntu, utilisez uniquement des PPA avec des sources fiables. Enfait, le paquet peut déjà être dans les dépôts d'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

Vous serez présenté avec cette fenêtre

Double-cliquez sur Advanced et vous obtiendrez cette fenêtre.

Lance ça:

Vous serez invité à enregistrer un fichier tar.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 mêmes étapes et lorsque vous arriverez à la boîte de dialogue avancée, cliquez sur ceci:

Vous serez invité à restaurer à partir de la sauvegarde précédente que vous aviez précédemment enregistrée avec une boîte de dialogue similaire à celle ci-dessous.


Ne fonctionne toujours pas?

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

Si toutes les étapes indiquées pour corriger l'erreur ne fonctionnent pas, vous pouvez toujours demander à Ask Ubuntu.

Voici quelques commandes dont vous avez besoin pour poster 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 la sortie peut être spécifique à une erreur, et les utilisateurs vous demanderont probablement, dans les commentaires, de publier le fichier / la commande.

Amith KK
la source
Je mettrais apt-get updateprès du haut de la liste. Parfois, votre système a effectué une mise à jour lorsqu'un package plus récent a été mis à jour à distance, mais l'un des paquets dont il dépend n'a pas encore été compilé. Ou la version que vous avez dans votre cache local a été mise à jour. Dans ces cas, un simple apt-get updatemettra à jour votre cache local et vous pourrez continuer.
Hamish Downer
1
Réponse de premier ordre! Cela me donne simplement le souhait que apt et / ou dpkg disposent de meilleures protections pour s’assurer qu’ils ne se retrouvent pas dans ces états brisés et bloqués, ou qu’ils étaient meilleurs pour les résoudre. J'ai déjà eu ce problème auparavant et j'étais assez frustré de apt-get install -fne pas le résoudre.
Jeff Welling
Vous pouvez également souhaiter inclure cet avertissement: "Ne mettez jamais à niveau votre système lorsque PPA est activé, désactivez-les puis mettez à niveau", car si vous effectuez une mise à niveau vers une version de PPA, puis que ce dernier devient inactif, cela signifie finalement que vous êtes mort. . Vous ne pouvez pas rétrograder l'ensemble du système vers les numéros de version inférieurs ni installer quelque chose d'un référentiel standard, car le package du référentiel std est en conflit avec le package PPA installé.
Anwar
2
Choisir un meilleur serveur l'a corrigé pour moi. Je vous remercie!
Hoang Huynh
Je pensais que le -fdrapeau était synonyme de force et
j'évitais
38

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

Je recommande fortement aptitude à quiconque utilise un système basé sur .deb comme Ubuntu. Son arborescence vous permet de parcourir facilement les dépendances, y compris les packages recommandés et suggérés, et de visualiser les conflits et les dépendances non résolues. C'est un outil précieux pour lequel apt-get n'offre pas une solution simple et pour visualiser les dépendances en général. ( Synaptic est également disponible dans Ubuntu, mais je ne le trouve pas aussi intuitif.)

Aptitude offre également un résolveur de conflits qui vous guidera à travers toutes les combinaisons possibles de paquets installés / supprimés / mis à jour / etc. afin de satisfaire toutes les exigences, sans conflit ni problème. Cela peut être réussi même si apt est incapable de trouver une solution. En tant qu'utilisateur Ubuntu, les situations ne vous obligent généralement pas à rechercher pourquoi ce paquet particulier est en cours d'installation, mais elles sont presque inévitables lorsque vous utilisez davantage le système.

surprescrit
la source
3
Voté pour mention du résolveur de conflits Aptitude. Il est parfois essentiel d’utiliser des outils avancés comme celui-ci pour déterminer les possibilités et identifier le conflit fondamental.
John S Gruber
3
Cela pourrait effectivement être la meilleure réponse dans ce fil. Il peut même être amélioré avec un tutoriel de tir sur aptitudele résolveur de conflits de.
Luís de Sousa
2
ce lien, bien qu'il n'explique pas les dépendances, ou leur concept général, montre un didacticiel rapide du résolveur interactif: aptitude.alioth.debian.org/doc/fr/ch02s03s03.html
surprescrit
1
+1 aptitude vient de sauver mon bacon face à un conflit GTK3. apt-get n'était d'aucune aide.
Chris Laplante
1
Ce que j'aime c'est sudo aptitude --full-resolver my_package. Cela donne généralement The following packages have unmet dependencieset une liste parmi lesquelles 7) <my_package> [Not Installed](7 n'est qu'un exemple). A chaque étape, aptitude offre de nouveaux choix. Ce qui a fonctionné pour moi a été de choisir d'abord 7, ensuite r 7(ce qui correspond à la description Rejecting the removal of my_package), puis n (pour NO), les choix antérieurs n'étaient pas ce que je voulais: mais après cela, de nouveaux choix ont proposé de mettre à niveau certains packages tout en installant my_package; so, last, Y(for YES)
24

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

Explication du message:

  1. Pour que votre installation soit terminée, package1 a besoin de package2.
  2. package2 doit être disponible en version> = 1.8
  3. Le gestionnaire de paquets a vérifié tous les référentiels et n'a trouvé que la version 1.7.5-1ubuntu1 pouvant être installée, ce qu'il ne fera pas car il est <1.8

Réparer

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

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

Scénario A:

Tous les référentiels auxquels vous avez accès n'ont pas package2 dans la version> = 1.8, vous devrez donc trouver un référentiel qui en possède. Si vous ne trouvez pas de référentiel avec des versions> = 1.8, vous devrez peut-être créer et installer package2 à partir du code source. Et puis essayez d'installer package1.

Si vous voulez savoir comment créer un paquet à partir de la source, vérifiez d’autres questions / réponses ou envoyez-en une nouvelle.

Scénario B:

Les référentiels 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 dernières versions de package2 ont été créées à l'aide d'une technologie plus récente qui n'est pas prise en charge par d'autres packages déjà installés.

Cela pourrait ne pas être possible du tout. Vous pouvez essayer d'utiliser apt ou synaptic et rechercher toutes les versions du package2 disponibles dans les référentiels, puis essayer d'installer une version spécifique> = 1.8.

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

Dans ce cas, vous avez un plus gros problème. Vous vouliez installer package1, ce qui nécessite que package2 soit> = 1.8, mais package2 dans la version> = 1.8 requiert que package3 soit dans la version> = 6.7 et que vous disposez de package3 version 6.3

Le problème est que le gestionnaire de paquets (APT) tente de résoudre automatiquement toutes ces dépendances, si cela est possible. Quand il dit que ce n'est pas possible (et envoie 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 alors essayer de forcer l'installation des versions spécifiques requises de tous les paquets, une par une, en espérant que tout ira bien.

Attention, cela pourrait créer de graves problèmes pour les packages système. Vous pouvez vous verrouiller hors du système, bloquer des services critiques, etc.

Scénario C:

Quelles que soient les raisons du problème, vous pouvez toujours configurer pour la compilation manuelle et créer le paquet requis et toutes ses dépendances dans les versions exactes requises à partir du source. 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 que cela ne crée pas de conflit avec le système. C'est probablement la solution la plus propre et peut parfois ê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 packages a un bogue dans le code de résolution de dépendance.

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 package auraient pu se tromper et ne pas vérifier que package1 fonctionnerait même avec la version de package2 <1.8 et qu'ils définissaient dans la spécification de fausses dépendances.

Vangel V. Ajanovski
la source
17

Ces méthodes doivent être suivies chaque fois que vous vous trouvez concernant les dépendances non résolues.

Après avoir suivi les instructions, essayez d’installer le logiciel. Au moins une de ces méthodes devrait fonctionner 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 non utilisé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 de nouvelles mises à jour.

2 . Essayez sudo apt-get install -f.

Il va probablement donner quelques suggestions sur la suppression et l'installation de paquets, faites ce qui semble raisonnable.

3 . Changer le Download Serverde Software Sourcesparce que parfois les fichiers sur un serveur sont corrompus.

entrez la description de l'image ici
entrez la description de l'image ici
entrez la description de l'image ici

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

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

ou

  • purger 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 ce n'est pas le cas, essayez au moins de supprimer le paquet qui est présenté comme une dépendance endommagée. Ensuite, essayez de nouveau l'installation.

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

entrez la description de l'image ici

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

entrez la description de l'image ici

S'il vous plaît ne pas activer le Proposed Updatescomme ils sont destinés à tester / développeurs.

entrez la description de l'image ici


Comme l'a dit Doug:

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

En outre, il est à noter que dans de nombreux cas, si ce n’est la plupart des cas, "<tout> doit être installé" signifie en réalité "<tout> est installé" et doit être essayé pour être supprimé si rien d’autre ne fonctionne (comme au point 5).


Je continuerai à ajouter d'autres choses difficiles à corriger unmet dependencies.

Ashu
la source
3
@Ashu Une chose que vous voudrez peut-être réparer - apt-get updatene met pas à jour le cache d'apt (composé de .debfichiers téléchargés et d'un fichier contenant des informations sur les .debfichiers que vous avez stockés). Il met à jour les fichiers d'index des packages (qui contiennent des informations sur les packages pouvant être téléchargés et installés à partir de chaque source de logiciel disponible). Comme je l'ai dit précédemment, apt-get cleanne nettoie pas la même chose que les apt-get updatemises à jour. Voir man apt-getpour plus de détails.
Eliah Kagan
16

Dans la plupart des cas, l’installation du package via aptituderésoudra les dépendances non satisfaites. Un aptitudepackage par défaut n’a pas été installé sur votre pc.Pour l’installer en premier, exécutez la commande

sudo apt-get update
sudo apt-get install aptitude

ensuite,

sudo aptitude install packagename

Par exemple,

    
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ sudo apt-get install ubuntu-sdk
Lecture des listes de paquets ... Terminé
Construire un arbre de dépendance       
Lecture des informations d'état ... Terminé
Certains paquets n'ont pas pu être installés. Cela peut signifier que vous avez
demandé une situation impossible ou si vous utilisez l'instable
distribution que certains paquets requis n'ont pas encore été créés
ou été déplacé de Incoming.
Les informations suivantes peuvent aider à résoudre le problème:

Les paquets suivants ont des dépendances non satisfaites:
 ubuntu-sdk: Dépend de: qtcreator-plugin-ubuntu mais il ne va pas être installé
E: Impossible de corriger les problèmes, vous avez mis en attente des paquets cassés.

Installation du package via aptitude

avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ sudo aptitude installer ubuntu-sdk
Les NOUVEAUX packages suivants seront installés:
  apparmor-easyprof {a} apparmor-easyprof-ubuntu {a} sur {a} build-essential {a} 
  cliquez sur {a} click-apparmor {a} cliquez-dev {a} cliquez-doc {a} cordova-ubuntu-2.8 
  cordova-ubuntu-2.8-examples {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-gypsy {a} libalgorithm-diff-perl {a} libalgorithm-diff-xs-perl {a} 
  libalgorithm-merge-perl {a} système de fichiers libboost1.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-stringy-perl {a} libjs-jquery {a} libjs-sphinxdoc {a} 
  libjs-underscore {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-magic {a} qmlscene qt3d5-dev qtbase5-doc {a} qtcreator {a} 
  qtcreator-doc {a} qtcreator-plugin-ubuntu {a} 
  qtcreator-plugin-ubuntu-common {a} qtdeclarative5-accounts-plugin 
  qtdeclarative5-cordova-2.8-plugin {a} qtdeclarative5-dev-tools 
  qtdeclarative5-doc-html {a} qtdeclarative5-folderlistmodel-plugin 
  qtdeclarative5-friends0.2 qtdeclarative5-localstorage-plugin 
  qtdeclarative5-particle-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-assets {a} 
  qtdeclarative5-ubuntu-ui-toolkit-plugin {a} 
  qtdeclarative5-unity-action-plugin {a} qtdeclarative5-usermetrics0.1 
  qtdeclarative5-window-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-container ubuntu-html5-sdk {ab} ubuntu-html5-theme {a} 
  ubuntu-html5-theme-examples ubuntu-sdk ubuntu-sdk-libs 
  ubuntu-sdk-libs-dev {a} ubuntu-ui-toolkit-doc {a} 
  ubuntu-ui-toolkit-examples {a} ubuntu-ui-toolkit-theme {a} 
  unity-action-doc {a} upstart-app-launch {a} upstart-app-launch-tools {a} 
  usermetricsservice {a} wdiff {a} zlib1g-dev {a} 
Les paquets suivants seront mis à jour:
  cpp-4.8 gcc-4.8 gcc-4.8-base de base libasan0 libatomic1 libgcc-4.8-dev 
  libgcc1 libglib2.0-0 libglib2.0-bin libgomp1 libitm1 libquadmath0 
  libstdc ++ 6 libtsan0 
15 packages mis à niveau, 151 nouvellement installés, 0 à supprimer et 293 non mis à niveau.
Besoin d'obtenir 108 Mo / 126 Mo d'archives. Après le déballage, 273 Mo seront utilisés.
Les paquets suivants ont des dépendances non satisfaites:
 ubuntu-html5-sdk: Dépend de: qtdeclarative5-ubuntu-webapps-api qui est un paquet virtuel.
                    Dépend de: ubuntu-html5-ui-toolkit mais il ne va pas être installé.
Les actions suivantes vont résoudre 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-ubuntu


Accepter cette solution? [Y / n / q /?] Y
Les NOUVEAUX packages suivants seront installés:
  apparmor-easyprof {a} apparmor-easyprof-ubuntu {a} build-essential {a} 
  cliquez {a} click-apparmor {a} cordova-ubuntu-2.8 debhelper {a} dh-apparmor {a} 
  dh-make {a} dpkg-dev {a} g ++ {a} g ++ - 4,8 {a} geoclue-gypsy {a} 
  libalgorithm-diff-perl {a} libalgorithm-diff-xs-perl {a} 
  libalgorithm-merge-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 plug-in qtdeclarative5-accounts 
  qtdeclarative5-cordova-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-assets {a} 
  qtdeclarative5-ubuntu-ui-toolkit-plugin {a} 
  qtdeclarative5-unity-action-plugin {a} qtdeclarative5-usermetrics0.1 
  qtdeclarative5-window-plugin {a} qtdeclarative5-xmllistmodel-plugin 
  qtlocation5-dev {a} qtmultimedia5-dev qtscript5-dev qtsensors5-dev {a} 
  qttools5-dev qttools5-dev-tools sqlite3 {a} ubuntu-html5-container 
  ubuntu-html5-theme {a} exemples de ubuntu-html5-theme ubuntu-sdk-libs 
  ubuntu-ui-toolkit-theme {a} upstart-app-launch {a} 
  upstart-app-launch-tools {a} usermetricsservice {a} wdiff {a} zlib1g-dev {a} 
Les paquets suivants seront mis à jour:
  cpp-4.8 gcc-4.8 gcc-4.8-base de base libasan0 libatomic1 libgcc-4.8-dev 
  libgcc1 libglib2.0-0 libglib2.0-bin libgomp1 libitm1 libquadmath0 
  libstdc ++ 6 libtsan0 
15 packages mis à niveau, 108 nouvellement installés, 0 à supprimer et 293 non mis à niveau.
Besoin d’obtenir 27,1 Mo / 45,8 Mo d’archives. Après décompression, 104 Mo seront utilisés.
Voulez-vous continuer? [Y / n /?]
Avinash Raj
la source
Votre exemple vient d'arrêter l'installation d'aptitude. Il n'installe réellement rien.
kiri
2
@AvinashRaj, ..mais avant l'installation, aptitudele problème des dépendances ne devrait-il pas être résolu?
précise le
oui, dans la plupart des cas, cela résout les dépendances.
Avinash Raj
2
Je veux dire, si le système a des paquets cassés, il ne permettra pas de nouvelles installations tant que ce n’est pas corrigé. Alors, comment voulez-vous installer aptitudesans résoudre le problème au préalable!
précis
dans ce cas, nous devons d'abord résoudre les paquets cassés, sinon vous ne pourrez pas installer aptitude. S'il n'y a pas eu d'erreur causée par des paquets cassés, vous pouvez installer aptitude.
Avinash Raj
11

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

En utilisant apt-get clean, apt-get autoclean, apt-get autoremove, apt-get upgrade, apt-get update, apt-get -u dist-upgrade, etc. tout ne fonctionne pas pour moi.

J'ai finalement résolu ce problème en descendant dans l'arbre de dépendance 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

Donc, j'ai couru apt-get installpour l'une des dépendances défaillantes:

apt-get install libmagickcore-dev

The 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

Encore une fois plus bas dans l'arbre:

apt-get install libgvc5

Pour une raison étrange, cela a réussi et j'ai pu installer le paquet original que je voulais avec apt-get install libmagickwand-dev:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libcdt4 libgd2-xpm libgraph4 libpathplan4
Suggested packages:
  libgd-tools
The following NEW packages will be installed:
  libcdt4 libgd2-xpm libgraph4 libgvc5 libpathplan4
0 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]?
Michael Franzl
la source
8

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 apache2

Reading package lists... Done

Building dependency tree      

Reading state information... Done

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or 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 installed

E: Broken packages

Solution:

Mon moyen est d'ajouter le paquet dépendu dans la liste d'installation.

Si "sudo apt-get install apache2" échoue, essayez " sudo apt-get install apache2 apache2.2-common ".

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

Enfin, j'ai trouvé une chaîne de dépendance 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 indique '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 existante dans ma bibliothèque, donc:

sudo apt-get remove libaprutil1

sudo apt-get install apache2

Maintenant c'est bon.

meule
la source
Une lecture combinée de cette réponse et l'autre ci - dessus ici donne une meilleure compréhension de ce qu'est un problème de dépendance est. Lorsque d’autres réponses fournissent des SOLUTIONS «Très généralisées», cela donne COMPRÉHENSION.
VenkiPhy6
7

ce qui est des dépendances non satisfaites Erreur

Les paquets sur Ubuntu sont le moyen principal par lequel le logiciel est construit, déployé et installé. Très simplement, les packages sont une alternative au téléchargement, à la construction et à l’installation de logiciels à partir de rien. Ils offrent une foule d'avantages en termes d'installation, de suppression, de surveillance et de gestion des interactions entre des éléments de logiciel par rapport au modèle standard "Compiler à partir de la source". Ubuntu utilise un système d’emballage centralisé, c’est-à-dire que chaque paquet dépend de certains autres. Lorsque nous installons un paquet, ses dépendances seront installées.

Causes possibles

1.Computer is not connected to the Internet
2.The repository containing the depandancy package is not enabled
3.Package catalog is not updated
4.The version of the depandancy in the current repository is old
5.Software index is broken
6.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 Centermenu -> Édition-> Sources de logiciels-> Autres sources-> Ajouter "

    -> Démarrer le Software Center.

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

    edit-software-sources

    -> Assurez-vous que tous les référentiels sont cochés entrez la description de l'image ici

  3. Mettre à jour le catalogue de logiciels

    cliquez sur l'icône en haut à droite et choisissez Entrée disponible pour la mise à jour dans le menu
    entrez la description de l'image ici

et appuyez sur le bouton de contrôle entrez la description de l'image ici

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

5.Purge du ppa récemment ajouté en utilisant ppa-purge ppa-purge Installer ppa-purge

Ce programme désactive un PPA de vos sources de logiciels et rétablit votre système dans les paquets officiels Ubuntu. Vous pouvez l'utiliser pour rétablir le fonctionnement normal de votre système 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 n'importe quel logiciel. Si la boîte de dialogue suivante apparaît, appuyez sur le bouton de réparation, puis patientez.

entrez la description de l'image ici

Sinon tapez ctrl+ alt+ tpour ouvrir le terminal, tapez sudo apt-get install -fet suivez les instructions à l'écran

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

Tachyons
la source
@jrg j'ai déjà cela dans ma réponse ... chaque réponse doit-elle avoir la même chose?
Ashu
2
@Ashu J'essaie d'aider les gens à donner une réponse canonique - et je dois le dire à tout le monde , car il y a une prime de 500 représentants en jeu et je ne veux pas jouer les favoris en aidant certaines personnes avec leurs réponses mais en ignorant les autres . : s
jrg
5

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

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

ÉDITÉ: l’utilisation sudo dpkg -r [package]est encouragée car elle possède une fonction d’élimination assez puissante. Depuis apt-gettravaille aux côtés de dpkg, ce qui signifie apt-getva obéir à la dpkgfonction.

  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 échoué que vous tentiez d'installer sur le système, puis vous appelez la commande build-dep, laquelle apt-get récupérera et installera individuellement les dépendances appartenant à ce paquet, de manière à satisfaire le paquet avant. Enfin, appelez apt-get install:

sudo apt-get install [package]

....'Pouah! Tordons votre bras jusqu'à ce que vous criiez "Oncle!"

Cela se produisait rarement pendant mes longues années d’utilisation de Linux, mais j’ai rarement eu recours à cette méthode 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 --skip-grant-tables techqiue mais qui a échoué), j'ai finalement réussi à "tordre le bras de Linux jusqu'à ce qu'il crie" Oncle! ":

sudo dpkg -r mysql-server mysql-client
sudo 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 first
sudo apt-get install mysql-client
sudo apt-get build-dep mysql-server
sudo apt-get install mysql-server

apt-get autoclean est la clé de cette solution

Faron
la source
3

Lors de l'installation de packages i386 sur des systèmes Multiarch Ubuntu 64 bits

Si vous essayez d'installer un package qui dépend de nombreux packages i386, l'erreur de dépendance indiquée ci-dessus serait également générée si vous ne parvenez pas à ajouter l'architecture i386 à l'aide de la sudo dpkg --add-architecure i386commande.

Exemple:

avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo apt-get install skype
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 skype : Depends: skype-bin but it is not installable
E: Unable to correct problems, you have held broken packages.
avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo dpkg --add-architecture i386
avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo apt-get install skype
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  gcc-4.8-base:i386 gcc-4.9-base:i386 libasound2:i386 libasound2-plugins:i386
  libasyncns0:i386 libaudio2:i386 libavahi-client3:i386
  libavahi-common-data:i386 libavahi-common3:i386 libc6:i386
  libcgmanager0:i386 libcomerr2:i386 libcups2:i386 libdbus-1-3:i386
  libdbusmenu-qt2:i386 libdrm-intel1:i386 libdrm-nouveau2:i386
  libdrm-radeon1:i386 libdrm2:i386 libelf1:i386 libexpat1:i386 libffi6:i386
  libflac8:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386
  libgcrypt11:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386
  libglapi-mesa:i386 libglib2.0-0:i386 libgnutls26:i386 libgpg-error0:i386
  libgssapi-krb5-2:i386 libgstreamer-plugins-base1.0-0:i386
  libgstreamer1.0-0:i386 libice6:i386 libjack-jackd2-0:i386 libjbig0:i386
  libjpeg-turbo8:i386 libjpeg8:i386 libjson-c2:i386 libk5crypto3:i386
  libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 libllvm3.4:i386
  liblzma5:i386 libmysqlclient18:i386 libnih-dbus1:i386 libnih1:i386
  libogg0:i386 liborc-0.4-0:i386 libp11-kit0:i386 libpciaccess0:i386
  libpcre3:i386 libpng12-0:i386 libpulse0:i386 libqt4-dbus:i386
  libqt4-declarative:i386 libqt4-network:i386 libqt4-opengl:i386
  libqt4-script:i386 libqt4-sql:i386 libqt4-sql-mysql:i386 libqt4-xml:i386
  libqt4-xmlpatterns:i386 libqtcore4:i386 libqtdbus4:i386 libqtgui4:i386
  libqtwebkit4:i386 libsamplerate0:i386 libselinux1:i386 libsm6:i386
  libsndfile1:i386 libspeexdsp1:i386 libsqlite3-0:i386 libssl1.0.0:i386
  libstdc++6:i386 libtasn1-6:i386 libtiff5:i386 libtinfo5:i386
  libtxc-dxtn-s2tc0:i386 libudev1:i386 libuuid1:i386 libvorbis0a:i386
  libvorbisenc2:i386 libwrap0:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386
  libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386
  libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386
  libxfixes3:i386 libxi6:i386 libxml2:i386 libxrender1:i386 libxshmfence1:i386
  libxslt1.1:i386 libxss1:i386 libxt6:i386 libxv1:i386 libxxf86vm1:i386
  mysql-common skype-bin:i386 sni-qt:i386 zlib1g:i386
Suggested packages:
  nas:i386 glibc-doc:i386 locales:i386 rng-tools:i386 libglide3:i386
  gnutls-bin:i386 krb5-doc:i386 krb5-user:i386 libvisual-0.4-plugins:i386
  gstreamer-codec-install:i386 gnome-codec-install:i386
  gstreamer1.0-tools:i386 gstreamer1.0-plugins-base:i386 jackd2:i386
  pulseaudio:i386 libqt4-declarative-folderlistmodel:i386
  libqt4-declarative-gestures:i386 libqt4-declarative-particles:i386
  libqt4-declarative-shaders:i386 qt4-qmlviewer:i386 libqt4-dev:i386
  libicu48:i386 libthai0:i386 qt4-qtconfig:i386
Recommended packages:
  xml-core:i386
The following NEW packages will be installed:
  gcc-4.8-base:i386 gcc-4.9-base:i386 libasound2:i386 libasound2-plugins:i386
  libasyncns0:i386 libaudio2:i386 libavahi-client3:i386
  libavahi-common-data:i386 libavahi-common3:i386 libc6:i386
  libcgmanager0:i386 libcomerr2:i386 libcups2:i386 libdbus-1-3:i386
  libdbusmenu-qt2:i386 libdrm-intel1:i386 libdrm-nouveau2:i386
  libdrm-radeon1:i386 libdrm2:i386 libelf1:i386 libexpat1:i386 libffi6:i386
  libflac8:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386
  libgcrypt11:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386
  libglapi-mesa:i386 libglib2.0-0:i386 libgnutls26:i386 libgpg-error0:i386
  libgssapi-krb5-2:i386 libgstreamer-plugins-base1.0-0:i386
  libgstreamer1.0-0:i386 libice6:i386 libjack-jackd2-0:i386 libjbig0:i386
  libjpeg-turbo8:i386 libjpeg8:i386 libjson-c2:i386 libk5crypto3:i386
  libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 libllvm3.4:i386
  liblzma5:i386 libmysqlclient18:i386 libnih-dbus1:i386 libnih1:i386
  libogg0:i386 liborc-0.4-0:i386 libp11-kit0:i386 libpciaccess0:i386
  libpcre3:i386 libpng12-0:i386 libpulse0:i386 libqt4-dbus:i386
  libqt4-declarative:i386 libqt4-network:i386 libqt4-opengl:i386
  libqt4-script:i386 libqt4-sql:i386 libqt4-sql-mysql:i386 libqt4-xml:i386
  libqt4-xmlpatterns:i386 libqtcore4:i386 libqtdbus4:i386 libqtgui4:i386
  libqtwebkit4:i386 libsamplerate0:i386 libselinux1:i386 libsm6:i386
  libsndfile1:i386 libspeexdsp1:i386 libsqlite3-0:i386 libssl1.0.0:i386
  libstdc++6:i386 libtasn1-6:i386 libtiff5:i386 libtinfo5:i386
  libtxc-dxtn-s2tc0:i386 libudev1:i386 libuuid1:i386 libvorbis0a:i386
  libvorbisenc2:i386 libwrap0:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386
  libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386
  libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386
  libxfixes3:i386 libxi6:i386 libxml2:i386 libxrender1:i386 libxshmfence1:i386
  libxslt1.1:i386 libxss1:i386 libxt6:i386 libxv1:i386 libxxf86vm1:i386
  mysql-common skype skype-bin:i386 sni-qt:i386 zlib1g:i386
0 upgraded, 115 newly installed, 0 to remove and 7 not upgraded.
Need to get 63.7 MB of archives.
After this operation, 225 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
Avinash Raj
la source
Je conviens que cela peut être une des causes possibles. lorsque j'ai essayé d'installer un autre package (par exemple vlc) après l'installation de skype et que j'ai obtenu la dépendance non remplie. Je suis sorti d'une situation similaire en ajoutant :amd64à la fin du nom du paquet qui causait l'erreur. comment as-tu récupéré? quelle serait la meilleure solution?
Souravc
Je ne sais pas pourquoi cela a été voté. C'est ce dont j'avais besoin pour installer Wine 32 bits. En passant, vous avez une faute de frappe dans --add-architecture, et vous devriez ajouter un rappel pour exécuter apt-get upgrade après --add-architecture.
Matt Chambers
1

Après avoir essayé près de toutes les méthodes mentionnées dans ce fil (et d'autres), j'étais sur le point d'abandonner. J'avais mis à niveau ma Debian Lenny vers Squeeze et je ne pouvais pas comprendre pourquoi PHP5, Apache, MySQL, etc. ne voulait pas installer. Finalement, j'ai essayé d'utiliser

sudo apt-get purge apache2
sudo apt-get purge php5
sudo apt-get purge mysql-server
sudo apt-get clean
sudo apt-get autoremove
sudo apt-get install apache2 php5 mysql-server

..et cela a fonctionné parfaitement! ( Attention, cela pourrait détruire vos fichiers de configuration, alors sauvegardez-les! )

h2ooooooo
la source
Cela ne résout pas le problème si les packages mentionnés ne sont pas installés.
Braiam
1

Ce qui a fonctionné pour moi est de réinstaller la dépendance. C'est le cas où la version installée est plus récente que la dernière (ce que montre synaptic). En fait, il est équivalent d'autoriser Synaptic à rétrograder le paquet de dépendance.

Une autre chose qui a fonctionné utilise "aptitude":

root@arau:~# aptitude install libgfortran3
The following NEW packages will be installed:
  libgfortran3{b} 
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 250 kB of archives. After unpacking 1 230 kB will be used.
The following packages have unmet dependencies:
 libgfortran3 : Depends: gcc-4.8-base (= 4.8.2-19ubuntu1) but 4.8.4-2ubuntu1~14.04 is installed.
Internal error: found 2 (choice -> promotion) mappings for a single choice.
The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     libgfortran3 [Not Installed]                       



Accept this solution? [Y/n/q/?] n
Internal error: found 2 (choice -> promotion) mappings for a single choice.
Internal error: found 2 (choice -> promotion) mappings for a single choice.
The following actions will resolve these dependencies:

      Downgrade the following packages:                                        
1)      cpp-4.8 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
2)      gcc-4.8 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
3)      gcc-4.8-base [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]  
4)      libasan0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      
5)      libatomic1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]    
6)      libgcc-4.8-dev [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]
7)      libgomp1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      
8)      libitm1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
9)      libquadmath0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]  
10)     libstdc++6 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]    
11)     libtsan0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      

Accept this solution? [Y/n/q/?] y
Bob Yoplait
la source
ce n'est rien de nouveau fondamentalement identique à ce que vous pouvez retirer de la réponse la mieux notée ici et de celle qui suit ...
JoKeR
1
oui, mais il existe des millions de solutions, je mentionne simplement ce qui a fonctionné pour moi.
Bob Yoplait
0

Si vous obtenez une erreur comme celle-ci:
entrez la description de l'image ici

Cela vous indique que les packages sont déjà installés, mais qu'il n'a pas installé tous les autres packages dont il a besoin pour fonctionner. Vous devriez pouvoir résoudre ceci en lançant ceci:

sudo apt-get -f install

(Cette commande devrait installer automatiquement les dépendances non satisfaites.)

ou quelque chose comme ça (avec les paquets appropriés) :

sudo apt-get install click curl dpkg-dev python-lzma python-requests imagemagick ubuntu-dev-tools

Mais si vous vous retrouvez avec ce genre d'erreur: impossible d'installer le package / package non disponible / pas de candidat d'installation, etc.

Vous pouvez ensuite rechercher des moyens de les installer ici ou ici .
Avec l'exemple ci-dessus, vous devriez pouvoir trouver une page comme celle-ci , puis utiliser un PPA ou installer un fichier .deb pour 32 bits ou un .deb pour 64 bits. .

Wilf
la source