web-dev-qa-db-fra.com

Problèmes de dépendance libgtk-3-0

J'ai essayé de mettre à jour des paquets standard sur ma machine Ubuntu. Il n'y a littéralement rien d'extra dans cette boîte, à l'exception de VirtualBox pour certains éléments de Windows que je lance. Voici une sortie:

$ Sudo apt-get update
[...]
$ Sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 libgail-3-0 : Depends: libgtk-3-0 (= 3.6.0-0ubuntu3.2) but 3.6.0-0ubuntu3.1 is installed
 libgtk-3-0 : Depends: libgtk-3-common (= 3.6.0-0ubuntu3.1) but 3.6.0-0ubuntu3.2 is installed
 libgtk-3-bin : Depends: libgtk-3-0 (>= 3.6.0-0ubuntu3.2) but 3.6.0-0ubuntu3.1 is installed

Et un autre avec l'option -f:

$ Sudo apt-get -f upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages will be upgraded:
  libgtk-3-0 overlay-scrollbar-gtk3
2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
26 not fully installed or removed.
Need to get 0 B/2,397 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
(Reading database ... 203437 files and directories currently installed.)
Preparing to replace libgtk-3-0:AMD64 3.6.0-0ubuntu3.1 (using .../libgtk-3-0_3.6.0-0ubuntu3.2_AMD64.deb) ...
Unpacking replacement libgtk-3-0:AMD64 ...
dpkg: error processing /var/cache/apt/archives/libgtk-3-0_3.6.0-0ubuntu3.2_AMD64.deb (--unpack):
 trying to overwrite '/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules', which is also in package ibus-gtk3:AMD64 1.4.1-7ubuntu1
Preparing to replace overlay-scrollbar-gtk3:AMD64 0.2.16+r357-0ubuntu1 (using .../overlay-scrollbar-gtk3_0.2.16+r357-0ubuntu1.1_AMD64.deb) ...
Unpacking replacement overlay-scrollbar-gtk3:AMD64 ...
dpkg: error processing /var/cache/apt/archives/overlay-scrollbar-gtk3_0.2.16+r357-0ubuntu1.1_AMD64.deb (--unpack):
 trying to overwrite '/usr/lib/x86_64-linux-gnu/gtk-3.0/modules', which is also in package libcanberra-gtk3-module:AMD64 0.29-0ubuntu2
Errors were encountered while processing:
 /var/cache/apt/archives/libgtk-3-0_3.6.0-0ubuntu3.2_AMD64.deb
 /var/cache/apt/archives/overlay-scrollbar-gtk3_0.2.16+r357-0ubuntu1.1_AMD64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Voici le résultat de apt-cache policy pour tous les paquets concernés: Pastebin d3YcjPmJ . Tous semblent provenir de la chaîne quantal et quantal-updates officielle et du miroir officiel.

J'ai aussi essayé Sudo apt-get -f install, Sudo apt-get dist-upgrade et Sudo apt-get clean && Sudo rm -r /var/cache/apt/archives/, mais tous conduisent à la même erreur.

11
Logan Best

Ok, si vous rencontrez toujours ce problème, cela se produit car certains packages ne fonctionneront pas si les versions de leurs pairs ne sont pas les mêmes.

libgail-3-0 : Depends: libgtk-3-0 (= 3.6.0-0ubuntu3.2) but 3.6.0-0ubuntu3.1 is installed
libgtk-3-0 : Depends: libgtk-3-common (= 3.6.0-0ubuntu3.1) but 3.6.0-0ubuntu3.2 is installed
libgtk-3-bin : Depends: libgtk-3-0 (>= 3.6.0-0ubuntu3.2) but 3.6.0-0ubuntu3.1 is installed

Comme vous pouvez le constater, libgail-3-0 exige que libgtk-3-0 soit 3.6.0-0ubuntu3 .2 mais libgtk-3-0 exige que libgtk-3-common soit 3.6.0-0ubuntu3 .1 une différence de versions .1. Donc, puisque libgtk-family ne peut pas avoir différentes versions, apt-get obtient une erreur de dépendance expectacular. Alors, comment résoudre ça? Nous utilisons l'état du paquetage hold:

echo "libgtk-3-bin hold" | Sudo dpkg --set-selections
echo "libgtk-3-0 hold" | Sudo dpkg --set-selections

Avec cela, vous pouvez mettre à niveau normalement jusqu'à ce que les conflits de dépendance soient résolus dans les référentiels Ubuntu.

Une fois que vous estimez pouvoir autoriser les mises à niveau, exécutez simplement:

echo "libgtk-3-bin install" | Sudo dpkg --set-selections
echo "libgtk-3-0 install" | Sudo dpkg --set-selections

Une autre option consiste à forcer l’installation des versions:

Sudo apt-get update
Sudo apt-get install libgtk-3-0=3.6.0-0ubuntu3.1 libgtk-3-common=3.6.0-0ubuntu3.1 libgtk-3-0=3.6.0-0ubuntu3.1

Cela indiquera à apt-get de tout installer avec le même numéro de version.

3
Braiam

Pour quiconque a encore ces problèmes.

Je crois qu’ils apparaissent lorsque vous supprimez manuellement certains paquets mais ne nettoyez pas tous les déchets qu’ils laissent. Dans mon cas, libgtk était toujours installé et il s’agissait d’une version plus récente que celle que je voulais installer. Donc, il ne savait vraiment pas quoi faire avec les différentes versions de la bibliothèque.

Après avoir supprimé le libgtk-3-0 et d’autres paquets avec des problèmes similaires, tout s’est bien passé.

PS Notez que si vous avez fait echo "libgtk-3-0 hold" | Sudo dpkg --set-selections, vous DEVEZ alors faire echo "libgtk-3-0 install" | Sudo dpkg --set-selections afin de pouvoir supprimer ce paquet.

0
niosus