632 votes

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

De temps en temps, lorsque j'installe des trucs, je reçois une erreur comme celle-ci :

Certains paquets n'ont pas pu être installés. Cela peut signifier que vous avez
demandé une situation impossible ou que vous utilisez la version instable
de la distribution et que certains paquets requis n'ont pas encore été créés
ou ont été déplacés hors de Incoming.
Les informations suivantes peuvent aider à résoudre la situation :

Les paquets suivants ont des dépendances non satisfaites :
package1 : Dépend de package2 (>= 1.8) mais 1.7.5-1ubuntu1 doit être installé
E: Impossible de corriger les problèmes, vous avez des paquets cassés en attente.

Comment puis-je résoudre cela ?

35 votes

Oubliez le nom exact du package. Il est irrelevant pour cette question. Je tente de créer une question canonique. En tant que tel, le package exact n'est pas pertinent dans ce cas spécifique.

36 votes

En fait, "le nom exact du package", bien qu'il ne soit pas pertinent dans votre question, est extrêmement important pour le problème de chaque individu à cet égard. En général, la meilleure première étape pour résoudre cela est d'identifier la source de pkg1 et pkg2. Cela semble avoir été négligé dans les réponses, la plupart étant sinon assez bonnes. De plus, il n'est pas noté que dans de nombreux cas, si ce n'est la plupart, " doit être installé" signifie vraiment " est installé". C'est quelque chose qui tend à confondre de nombreux utilisateurs confrontés à cela et devrait également être inclus dans une réponse ci-dessous.

5 votes

@doug Ajoutez cela comme une réponse et non comme un commentaire, c'est plutôt bon! :)

636voto

th_in_gs Points 382

APT est un système de gestion de paquets pour Debian et d'autres distributions Linux basées sur elle, comme Ubuntu. Dans la plupart des cas, 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 que l'installation d'un paquet n'a pas pu être achevée.

Solutions :

C'est toujours une bonne idée de sauvegarder les fichiers de configuration tels que /etc/apt/sources.list afin de pouvoir revenir en arrière 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 y universe sont activés. Allez sur Alt + F2 , type software-properties-gtk et frappez Enter .

    Sous Ubuntu Software activez tous les référentiels.

  • Une cause possible des dépendances non satisfaites peut être une base de données de paquets corrompue, et/ou certains paquets 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-get clean

    ou,

    sudo apt-get autoclean

    apt-get clean vide le référentiel local des fichiers de paquets 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 autoclean vide le référentiel local des fichiers de paquets récupérés, mais à la différence de apt-get clean il ne supprime que les fichiers de paquets qui ne peuvent plus être téléchargés et qui sont largement inutiles.

  • L'une des solutions les plus basiques pour résoudre les problèmes de dépendances est d'exécuter :

    sudo apt-get -f install

    El -f signifie "réparer ce qui est cassé". Apt tentera de corriger les dépendances brisé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 pourra simplement supprimer le paquet que vous avez installé afin de résoudre le problème.

    Alors cours :

    sudo dpkg --configure -a

    Puis recommencez :

    sudo apt-get -f install

    Si la sortie est :

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

    Ça veut dire que ça a échoué.

  • La prochaine solution est de courir :

    sudo apt-get -u dist-upgrade

    S'il montre des paquets retenus, il est préférable de les éliminer. Les paquets sont retenus à cause de conflits de dépendance que apt ne peut être résolu. 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 s'arrêtera avec :

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

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

    sudo apt-get remove --dry-run package-name

    Comme la suppression du paquet que vous essayez d'installer n'est peut-être pas idéale, vous pouvez aussi essayer de trouver un dépôt qui possède les paquets dont vous avez besoin pour satisfaire les dépendances.

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

Désactiver/Supprimer/Purger les PPAs :

Les PPA (Personal Package Archive) sont des dépôts hébergés sur le site Web de la Commission européenne. Launchpad . Vous pouvez utiliser les PPA pour installer ou mettre à niveau des paquets qui ne sont pas disponibles dans les dépôts officiels d'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 paquet existant dans les dépôts Ubuntu. Pour résoudre ce problème, vous avez trois options : désactiver, purger (revenir au paquet original dans les dépôts Ubuntu) ou supprimer le PPA.

  • Désactiver :

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

    Hit Alt + F2 et exécuter software-properties-gtk .

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

  • Purge :

    La purge d'un PPA signifie que les paquets du PPA sélectionné sont mis à niveau vers la version des dépôts officiels d'Ubuntu et que ce PPA est désactivé. Purge du PPA fait exactement cela. Pour installer PPA Purge, exécutez la commande suivante :

    sudo apt-get install ppa-purge

Mais, en 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 PPA Purge :

sudo ppa-purge ppa:someppa/ppa

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

Note : PPA Purge ne supprime pas les PPA ( peut être dans le futur ), vous devrez donc supprimer manuellement le PPA.

  • Retirer :

    Si le paquet installé à partir d'un PPA n'existe pas dans les dépôts officiels d'Ubuntu, l'utilisation de la commande PPA Purge n'est pas recommandé, car il n'y a rien à rétrograder et PPA Purge ne le supprimerait pas non plus. Pour supprimer un PPA et les paquets installés, exécutez les commandes suivantes : (Ignorez la première commande si vous ne voulez pas supprimer les paquets installés)

    sudo apt-get autoremove --purge package-name
    sudo add-apt-repository --remove ppa:someppa/ppa
    sudo apt-get autoclean

Vous pouvez également utiliser Y PPA Manager pour désactiver/supprimer/purger les PPA (détails à la fin de la réponse).

Mesures préventives :

Alors comment éviter que cela ne se produise en premier lieu ?

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

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

    sudo apt-get update
    sudo apt-get upgrade

    Mise à jour : Synchronise votre liste de paquets disponibles avec les serveurs dans les dépôts de sources. Mise à niveau : Télécharge et installe toute version plus récente de vos paquets installés.

  • Si vous décidez d'ajouter d'autres dépôts à sources.list, assurez-vous que le dépôt 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 obliger à le réinstaller. Assurez-vous également que vous avez vraiment besoin d'ajouter des dépôts externes, car le ou les logiciels que vous recherchez peuvent déjà avoir été introduits dans les dépôts officiels ! Source :

  • Supprimez les PPA en double. Y PPA Manager (guide d'installation à la fin de la réponse) peut facilement analyser et supprimer les PPAs dupliqués.

    • Hit Alt + F2 et exécuter y-ppa-manager pour ouvrir Y PPA Manager.
    • Une fois ouvert, double-cliquez ou tapez Enter sur Advanced .
    • Dans la fenêtre qui en résulte, 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 :

    sudo apt-get install package-name
  • Ceci montrera votre liste de sources :

    cat /etc/apt/sources.list
  • La liste des AAE (s'il y en a) s'affichera :

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

Sources supplémentaires :


Y Gestionnaire 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 paquets dans tous les PPA de Launchpad
  • lister et télécharger les paquets dans un PPA
  • ajouter / supprimer / purger un PPA
  • sauvegarde et restauration des sources PPA
  • supprimer les sources PPA dupliquées

Pour 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-manager
sudo apt-get update
sudo apt-get install y-ppa-manager

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

sudo su

y

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

3 votes

Comment installer les dépendances non satisfaites si apt est cassé?

5 votes

Cela a été d'une grande aide pour moi... installation fraîche de Lubuntu 12.04 et je ne pouvais pas installer des choses basiques telles que gvim (vim-gtk) ou openssh-server. J'avais essayé toutes sortes d'options en ligne de commande, y compris littéralement faire une différence de /etc/apt/sources.list de cette machine et d'une autre (qui fonctionnait correctement, exécutant Xubuntu). Après avoir suivi ce guide, j'ai découvert que d'une certaine manière dans software-properties-gtk, la case des dépôts 'main' avait été décochée! Problème résolu!

2 votes

Parfois, vous avez vraiment des paquets cassés... Donc le mieux est de les détenir et de les supprimer. Voir askubuntu.com/a/363244/16395

92voto

Amith KK Points 13017

Remarque : Toutes les commandes dont l'exécution est demandée doivent être exécutées dans le terminal, qui peut être ouvert par l'une des méthodes suivantes Ctrl + Alt + T ou en cherchant le 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 essayiez d'installer

sudo apt-get update

Étapes de la pré-perfomance

Sauvegarde

Sauvegardez les fichiers suivants :

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

Pour ce faire, utilisez les commandes suivantes

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

y

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

Nettoyage de votre apt-cache

apt conserve un cache des paquets récemment téléchargés afin d'é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/ y /var/cache/apt/archives/partial sauf les fichiers .lock. Ceci est recommandé

sudo apt-get autoclean

Cela analyse les dossiers /var/cache/apt/archives/ y /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 permettra à apt de rechercher les dépendances manquantes et de les corriger à partir des dépôts.

Si le résultat indique que rien de nouveau n'a été installé ou mis à niveau, l'opération a échoué.


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

Type gksu software-properties-gtk et vous obtiendrez cette fenêtre

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

Ensuite, allez dans l'onglet Autres logiciels et vérifiez si les PPAs requis pour le logiciel à installer sont là et sont activés. Essayez également de désactiver certains PPAs qui pourraient avoir des paquets cassés.

maintenant, exécutez sudo apt-get update

Essayez d'installer le logiciel maintenant

Choisir un meilleur serveur pour le téléchargement

Type gksu software-properties-gtk et vous obtiendrez cette fenêtre

Cliquez sur le bouton Télécharger à partir de la liste déroulante et sélectionnez Autre.

Cliquez sur Select Best Server

Exécuter sudo apt-get update

Essayez d'installer le logiciel

Essayez également 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 les applications qui les accompagnent.

Pour l'installer, exécutez

sudo apt-get install ppa-purge

Mais, considérant la question apt est cassé et 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

Maintenant, utilisez ppa purge

sudo ppa-purge ppa:someppa/ppa  

Responsable Y-PPA

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

Pour l'installer

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

y

sudo apt-get update

y

sudo apt-get install y-ppa-manager

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

sudo su

y

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

La fenêtre suivante s'affiche

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

Effectuez les tâches suivantes soulignées en noir


Mieux vaut prévenir que guérir

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

Voici donc les directives à suivre pour assurer votre sécurité.

Maintenez votre système à jour

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

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

N'utilisez que des PPA destinés à être utilisés sur Ubuntu. N'utilisez également que des PPA provenant de sources fiables. En fait, le paquet peut déjà être dans les dépôts Ubuntu.

Sauvegarder quand tout va bien et restaurer plus tard

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

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

y-ppa-manager

La fenêtre suivante s'affiche

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

Fais ça :

Il vous sera demandé de sauvegarder un fichier tar.gz avec une boîte de dialogue similaire à celle ci-dessous. Sauvegardez-le dans une autre partition ou dans 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 :

Il vous sera demandé de restaurer à partir de la sauvegarde précédente que vous avez enregistrée auparavant avec un dialogue similaire à celui ci-dessous


Cela ne fonctionne toujours pas ?

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

Si vous ne parvenez pas à corriger l'erreur en suivant toutes les étapes indiquées, vous pouvez toujours demander à la Commission européenne de vous aider. Demandez à Ubuntu

Voici quelques commandes dont vous devez afficher le résultat

sudo apt-get install packagename

y

cat /etc/apt/sources.list

y

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

(Merci à Basharat Sial )

Il y a aussi d'autres fichiers/commandes dont vous avez besoin de la sortie et qui peuvent être spécifiques à une erreur, et les utilisateurs vous demanderont probablement dans les commentaires de poster le fichier/la commande.

0 votes

Je placerais apt-get update près du haut de la liste. Parfois, votre système a effectué une mise à jour où un paquet plus récent a été mis à jour à distance, mais un autre sur lequel il dépend n'a pas encore terminé de se construire. Ou bien la version que vous avez en cache locale a été mise à jour. Dans ces cas, un simple apt-get update mettra à jour votre cache local et vous pourrez continuer.

1 votes

Réponse de premier ordre! Cela me donne juste envie qu'apt et dpkg aient de meilleures protections pour éviter de se retrouver dans ces états bloqués, ou pour être meilleurs pour les résoudre. J'ai déjà rencontré ce problème auparavant et j'étais assez frustré lorsque apt-get install -f n'a pas pu le résoudre.

0 votes

Vous voudrez peut-être également inclure cet avertissement : "Ne mettez jamais à niveau votre système tant que le PPA est activé, désactivez-le d'abord puis procédez à la mise à niveau" Parce que si vous mettez à niveau vers une version PPA puis que ce PPA devient obsolète, cela signifie finalement que vous êtes bloqué. Vous ne pouvez pas revenir à des versions plus anciennes du système et vous ne pouvez pas installer quelque chose depuis un référentiel standard car le package du référentiel standard entre en conflit avec le package PPA installé.

44voto

Nathan Kitchen Points 2729

Ces réponses jusqu'à présent se concentrent sur la façon d'aider le système à résoudre automatiquement un tel problème, en espérant surtout qu'il se résolve de lui-même, mais sans se concentrer sur la compréhension de comment enquêter sur les dépendances. Il est important de s'assurer en premier lieu que vos listes de packages sont à jour ; assurez-vous toujours qu'une mise à jour simple ou un vidage du cache ne résoud pas le problème avant d'aller plus loin. Cependant, s'il s'avère que tout fonctionne en coulisses comme il se doit, il est primordial de comprendre les dépendances. Parfois, les différentes 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 vivement aptitude à toute personne utilisant un système basé sur les fichiers .deb, comme Debian, Kali, Ubuntu ou l'une de ses dérivées. Il fournit une interface pour parcourir les différentes couches de dépendances, y compris les packages recommandés et suggérés. C'est un outil inestimable lorsque apt-get ne propose pas de solution à un conflit et pour visualiser les dépendances en général. (Synaptic est également disponible dans Ubuntu.)

Le résolveur de conflits d'Aptitude vous guidera à travers les combinaisons possibles des packages installés/supprimés/mis à jour, etc. qui satisfont vos actions demandées sans conflit. Cela peut souvent être efficace même lorsque apt ne parvient pas à trouver une solution. En tant qu'utilisateur Ubuntu, des situations qui nécessitent une enquête sur la raison pour laquelle un package particulier est installé ou provoque un conflit ne surviennent généralement pas, mais il est presque inévitable que cela se produise à mesure que vous utilisez le système davantage.

4 votes

Voté pour la mention de l'outil de résolution de conflits Aptitude. Il arrive des moments où il est essentiel d'utiliser des outils avancés comme celui-ci pour déterminer quelles sont les possibilités et pour cibler le conflit central.

3 votes

Cela pourrait en fait être la meilleure réponse dans ce fil. Cela peut même être amélioré avec un petit tutoriel sur le résolveur de conflits aptitude.

2 votes

Ce lien, bien qu'il n'explique pas les dépendances, ou leur concept général, montre un tutoriel rapide du solveur interactif: aptitude.alioth.debian.org/doc/fr/ch02s03s03.html

27voto

SebastianK Points 1324

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

Explication du message :

  1. Pour que votre installation soit complété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 dépôts et n'a trouvé que la version 1.7.5-1ubuntu1 pouvant être installée, ce qu'il ne fera pas car elle est < 1.8

Correction

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

Il y a de nombreux scénarios pour lesquels cela peut se produire et il faut enquêter sur toutes les options et essayer de résoudre les préconditions qui ont conduit à cette erreur.

Scénario A :

Tous les dépôts auxquels vous avez accès n'ont pas package2 en version >= 1.8, vous devrez donc trouver un dépôt qui le fait. Si vous n'arrivez pas à trouver un dépôt avec des versions >=1.8, alors vous devrez construire et installer package2 à partir de la source. Ensuite, essayez d'installer package1.

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

Scénario B :

Les dépôts incluent package2 dans une version >= 1.8 mais le gestionnaire de paquets veut quand même installer une version plus ancienne (1.7.5).

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

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

Si vous avez d'autres paquets incompatibles et si 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 nécessite que package2 soit >= 1.8, mais package2 en version >=1.8 exige que package3 soit en version >= 6.7 et vous avez package3 en version 6.3

Le gestionnaire de paquets (APT) tente de résoudre automatiquement toutes ces dépendances s'il en est capable. Lorsqu'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 d'installer de force les versions spécifiques nécessaires de tous les paquets, un par un, 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 retrouver bloqué hors du système, bloquer des services critiques, etc.

Scénario C :

Peu importe les raisons du problème, vous pouvez toujours vous préparer à une compilation manuelle et construire le paquet nécessaire et toutes ses dépendances dans les versions exactement nécessaires à partir de la source. Avec cette option, vous pouvez garder ce que vous avez construit dans un répertoire séparé et en dehors du chemin du système pour éviter les conflits avec le système. C'est probablement la solution la plus propre, et parfois la plus rapide à réaliser.

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. Consultez les autres réponses.

Scénario E :

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

Vous devez vérifier si c'est vraiment le cas, puis soumettre une demande de correction de bug.

...

Scénario Z :

Il peut y avoir d'autres scénarios.

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

18voto

Avinash Raj Points 72686

Dans la plupart des cas, l'installation du paquet par aptitude résoudra les dépendances non satisfaites. aptitude n'a pas été installé sur votre PC, alors installez-le d'abord en le lançant,

sudo apt-get update
sudo apt-get install aptitude

alors,

sudo aptitude install packagename

Par exemple,

avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo apt-get install ubuntu-sdk
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:
 ubuntu-sdk : Depends: qtcreator-plugin-ubuntu but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Installer le paquet par le biais de aptitude

avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo aptitude install ubuntu-sdk
The following NEW packages will be installed:
  apparmor-easyprof{a} apparmor-easyprof-ubuntu{a} at{a} build-essential{a} 
  click{a} click-apparmor{a} click-dev{a} click-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} libboost-filesystem1.53.0{a} 
  libboost-program-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-click{a} python3-click{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-particles-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} 
The following packages will be upgraded:
  cpp-4.8 gcc-4.8 gcc-4.8-base hud libasan0 libatomic1 libgcc-4.8-dev 
  libgcc1 libglib2.0-0 libglib2.0-bin libgomp1 libitm1 libquadmath0 
  libstdc++6 libtsan0 
15 packages upgraded, 151 newly installed, 0 to remove and 293 not upgraded.
Need to get 108 MB/126 MB of archives. After unpacking 273 MB will be used.
The following packages have unmet dependencies:
 ubuntu-html5-sdk : Depends: qtdeclarative5-ubuntu-webapps-api which is a virtual package.
                    Depends: ubuntu-html5-ui-toolkit but it is not going to be installed.
The following actions will resolve these dependencies:

     Keep the following packages at their current version:              
1)     qtcreator-plugin-ubuntu \[Not Installed\]                          
2)     ubuntu-html5-sdk \[Not Installed\]                                 
3)     ubuntu-sdk \[Not Installed\]                                       

     Leave the following dependencies unresolved:                       
4)     libhud-client2 recommends hud (= 13.10.1+13.10.20131014-0ubuntu1)
5)     qtcreator-plugin-ubuntu-common recommends qtcreator-plugin-ubuntu

Accept this solution? \[Y/n/q/?\] y
The following NEW packages will be installed:
  apparmor-easyprof{a} apparmor-easyprof-ubuntu{a} build-essential{a} 
  click{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-click{a} python3-click{a} 
  qmlscene qt3d5-dev qtdeclarative5-accounts-plugin 
  qtdeclarative5-cordova-2.8-plugin{a} qtdeclarative5-dev-tools 
  qtdeclarative5-folderlistmodel-plugin qtdeclarative5-friends0.2 
  qtdeclarative5-localstorage-plugin qtdeclarative5-particles-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} ubuntu-html5-theme-examples ubuntu-sdk-libs 
  ubuntu-ui-toolkit-theme{a} upstart-app-launch{a} 
  upstart-app-launch-tools{a} usermetricsservice{a} wdiff{a} zlib1g-dev{a} 
The following packages will be upgraded:
  cpp-4.8 gcc-4.8 gcc-4.8-base hud libasan0 libatomic1 libgcc-4.8-dev 
  libgcc1 libglib2.0-0 libglib2.0-bin libgomp1 libitm1 libquadmath0 
  libstdc++6 libtsan0 
15 packages upgraded, 108 newly installed, 0 to remove and 293 not upgraded.
Need to get 27.1 MB/45.8 MB of archives. After unpacking 104 MB will be used.
Do you want to continue? \[Y/n/?\]

1 votes

Votre exemple se contente d'arrêter l'installation d'aptitude. Il n'installe en réalité rien.

2 votes

@AvinashRaj, ..mais avant d'installer aptitude, ne faudrait-il pas d'abord résoudre le problème des dépendances ?

0 votes

Oui, dans la plupart des cas, cela résout les dépendances.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X