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! :)

11voto

Michael Franzl Points 595

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. rien n'a fonctionné pour moi.

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

apt-get install libmagickwand-dev

J'ai obtenu cette erreur :

Les paquets suivants ont des dépendances non satisfaites:
 libmagickwand-dev : Dépend: libmagickcore4-extra (= 8:6.6.9.7-5ubuntu3.2) mais il ne sera pas installé
                     Dépend: libmagickcore-dev (= 8:6.6.9.7-5ubuntu3.2) mais il ne sera pas installé

Donc, j'ai exécuté apt-get install pour l'une des dépendances échouées :

apt-get install libmagickcore-dev

Les paquets suivants ont des dépendances non satisfaites:
 libmagickcore-dev : Dépend: libmagickcore4-extra (= 8:6.6.9.7-5ubuntu3.2) mais il ne sera pas installé
                     Dépend: libgraphviz-dev mais il ne sera pas installé

J'ai descendu plus en profondeur dans l'arbre :

apt-get install libgraphviz-dev

avec une autre erreur :

Les paquets suivants ont des dépendances non satisfaites:
 libgraphviz-dev : Dépend: libgvc5 (= 2.26.3-10ubuntu1) mais il ne sera pas installé

Encore plus profondément dans l'arbre :

apt-get install libgvc5

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

Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Les paquets suivants seront ajoutés :
  libcdt4 libgd2-xpm libgraph4 libgvc5 libpathplan4
Nouveaux paquets ajoutés :
  libcdt4 libgd2-xpm libgraph4 libgvc5 libpathplan4
0 mis à jour, 5 nouvellement installés, 0 à enlever et 2 non mis à jour.
Il est nécessaire de prendre 808 ko dans les archives.
Après cette opération, 2 320 ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n]

8voto

rick Points 89

Excellent answers! But today my case seems different from yours. Here's my advice.

Problème :

J'ai échoué à installer apache2 sur Ubuntu 10.10.

rick@wen-VirtualBox:~$ sudo apt-get install apache2

Lecture des listes de paquets... Fait

Construction de l'arbre des dépendances      

Lecture de l'information d'état... Fait

Certains paquets ne peuvent être installés. Cela peut signifier que vous avez
demandé l'impossible ou, si vous utilisez la distribution unstable,
que certains paquets n'ont pas encore été créés ou ne sont pas sortis d'Incoming.

Les paquets suivants contiennent des dépendances non satisfaites :

 apache2 : Dépend: apache2-mpm-worker (= 2.2.16-1ubuntu3) mais il ne sera pas installé ou

                    apache2-mpm-prefork (= 2.2.16-1ubuntu3) mais il ne sera pas installé ou

                    apache2-mpm-event (= 2.2.16-1ubuntu3) mais il ne sera pas installé ou

                    apache2-mpm-itk (= 2.2.16-1ubuntu3) mais il ne sera pas installé

           Dépend: apache2.2-common (= 2.2.16-1ubuntu3) mais il ne sera pas installé

E: Paquets défectueux

Solution :

Ma méthode consiste à ajouter le package sur lequel il dépend à la liste d'installation.

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

Voyez ? apache2.2-common provient du journal d'erreur de l'étape précédente.

Enfin, j'ai découvert qu'il y avait une chaîne de dépendances comme suit :

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

Pour les 3 premiers paquets, le journal d'apt-get m'a indiqué 'ne sera pas installé',

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

J'avais une version différente existante dans ma lib, donc :

sudo apt-get remove libaprutil1

sudo apt-get install apache2

Maintenant tout fonctionne.

1 votes

Une lecture combinée de cette réponse et de l'autre ci-dessus ici donne une meilleure COMPRÉHENSION de ce qu'est un problème de dépendance. Alors que d'autres réponses ici fournissent des SOLUTIONS "Hautement Généralisées", celle-ci fournit une COMPRÉHENSION.

7voto

Tachyons Points 16886

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

Sous Ubuntu, les packages sont le moyen principal de construction, de déploiement et d'installation de logiciels. Tout simplement, les packages sont une alternative au téléchargement, à la construction et à l'installation de logiciels à partir de zéro. Ils offrent une multitude d'avantages en termes d'installation, de suppression, de surveillance et de gestion des interactions entre les différents morceaux de logiciels par rapport au modèle standard de "construction à partir des sources". Ubuntu utilise un système de packaging centralisé, c'est-à-dire que chaque package dépend de certains autres packages. L'erreur de dépendances non satisfaites se produit lorsque les dépendances du package ne sont pas disponibles pour l'installation.

Causes possibles

1. L'ordinateur n'est pas connecté à Internet
2. Le dépôt contenant le package de dépendance n'est pas activé
3. Le catalogue de packages n'est pas mis à jour
4. La version de la dépendance dans le dépôt actuel est ancienne
5. L'index du logiciel est cassé
6. La dépendance n'est pas disponible pour Ubuntu

Essayons de le résoudre

  1. Connectez-vous à Internet :D

  2. Assurez-vous que tous les dépôts par défaut sont activés

    -> Vous pouvez facilement les ajouter dans le Logithèque -> Modifier -> Sources de logiciels -> Autres sources -> Ajouter

    -> Démarrez la Logithèque.

    -> Dans le panneau, allez dans Modifier et sélectionnez Sources de logiciels.

    modifier-les-sources-de-logiciels

    -> Assurez-vous que tous les dépôts sont cochés entrer une description de l'image ici

  3. Mettez à jour le catalogue de logiciels

    Cliquez sur l'icône en haut à droite et choisissez l'entrée mise à jour-disponible dans le menu
    entrer une description de l'image ici

et appuyez sur le bouton de vérification entrer une description de l'image ici

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

5. Purgez le 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 aux packages officiels d'Ubuntu. Vous pouvez utiliser ceci pour revenir à la normale après avoir testé une nouvelle version d'un PPA.

Syntaxe

sudo ppa-purge ppa:/

Exemple

sudo ppa-purge ppa:ubuntu-mozilla-daily/ppa
  1. Ouvrez la logithèque, et essayez d'installer un logiciel, si la boîte de dialogue suivante apparaît, appuyez sur le bouton de réparation et attendez

entrer une description de l'image ici

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

Si l'erreur persiste, n'hésitez pas à la poser sur askbuntu

0 votes

@jrg J'ai déjà cela dans ma réponse ... est-ce que chaque réponse doit avoir la même chose?

2 votes

@Ashu, Je suis en train d'essayer d'aider les gens à faire une réponse canonique - et je dois le dire à tout le monde, car il y a une prime de 500 réputations en jeu et je ne veux pas favoriser certains en aidant certaines personnes avec leurs réponses tout en ignorant les autres. :s

5voto

Faron Points 1386

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

En plus des réponses ci-dessus - je dois admettre que je suis surpris que personne n'ait mentionné cette approche, qui est ce que j'ai toujours utilisé comme un "remède 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 récalcitrant....ha!).

EDITÉ: l'utilisation de sudo dpkg -r [package] est encouragée car elle a une fonction de suppression assez puissante. Puisque apt-get fonctionne aux côtés de dpkg, ce qui signifie que apt-get obéira à la fonction dpkg.

  sudo dpkg -r [package]
  sudo apt-get build-dep [package]  
  ## pré-installer toutes les dépendances pour le paquet

Vous appelez apt-get pour purger le paquet échoué que vous essayiez d'installer dans le système, puis vous appelez la commande build-dep, que apt-get récupérera et installera les dépendances individuellement appartenant à ce paquet, de manière à ce qu'elles satisfassent le paquet avant. Ensuite, enfin, appelez l'installation de apt-get :

sudo apt-get install [package]

... 'Ouf ! Faisons pression sur vous jusqu'à ce que vous criiez "Oncle!"'

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

sudo dpkg -r mysql-server mysql-client
sudo apt-get autoclean  
## cela supprime toute copie du paquet existant pour empêcher apt-get de le "réutiliser".
sudo apt-get build-dep mysql-client   
 ## un paquet à la fois, en commençant par le client en premier
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

3voto

Avinash Raj Points 72686

Pendant l'installation des paquets i386 sur les systèmes Multiarch Ubuntu 64 bits

Si vous essayez d'installer un paquet qui dépend de nombreux paquets i386, l'erreur de dépendance mentionnée ci-dessus pourrait également se produire si vous oubliez d'ajouter l'architecture i386 en exécutant la commande sudo dpkg --add-architecture i386.

Exemple:

avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo apt-get install skype
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Certains paquets ne peuvent être installés. Cela signifie peut-être que vous avez
demandé une situation impossible ou, si vous utilisez la distribution unstable,
que certains paquets demandés n'ont pas encore été créés ou ne sont pas sortis d'Incoming.
Les informations suivantes peuvent vous aider à résoudre la situation :

Les paquets suivants contiennent des dépendances non satisfaites :
 skype : Dépend: skype-bin mais il n'est pas installable
E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ».
avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo dpkg --add-architecture i386
avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo apt-get install skype
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Les paquets suivants seront installés en plus :
  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
Paquets suggérés :
  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
Paquets recommandés :
  xml-core:i386
Les NOUVEAUX paquets suivants seront installés :
  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 mis à jour, 115 nouvellement installés, 0 à enlever et 7 non mis à jour.
Il est nécessaire de télécharger 63,7 Mo d'archives.
Après cette opération, 225 Mo d'espace disque supplémentaire seront utilisés.
Voulez-vous continuer ? [O/n]

0 votes

Je suis d'accord que cela pourrait être l'une des causes possibles. Quand j'ai essayé d'installer un autre package (par exemple vlc) après avoir installé Skype et que j'ai obtenu la dépendance non satisfaite. Je suis sorti d'une situation similaire en ajoutant :amd64 à la fin du nom du package qui causait l'erreur. Comment as-tu récupéré ? Quelle serait la meilleure solution ?

0 votes

Pas sûr pourquoi cela a été downvoté. C'est ce dont j'avais besoin pour installer Wine 32 bits. Au fait, 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.

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