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

12

J'ai essayé de mettre à jour des packages standard sur ma boîte Ubuntu. Il n'y a littéralement rien de plus sur cette boîte, sauf VirtualBox pour certains trucs 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 la sortie de apt-cache policytous les packages concernés: pastebin d3YcjPmJ . Tous semblent provenir de la chaîne officielle quantalet de quantal-updatessortie et d'un miroir officiel.

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

Logan Best
la source
Oui , je fait la mise à jour avec les nouveaux paquets, et oui je courais mise à jour avant la mise à niveau
Logan meilleur
Ces deux commandes a obtenu la même sortie que la sortie -f dans la demande initiale.
Logan Meilleur
1
Avez - vous essayé de supprimer le /var/cache/apt/archives/répertoire et la mise à jour à nouveau? sudo apt-get clean && sudo rm -r /var/cache/apt/archives/
Lucio
Essayé et même erreur. Question mise à jour.
Logan Meilleur
@LoganBest S'il vous plaît, essayez avec ceci: sudo dpkg -r libgtk-3-0_3.6.0-0ubuntu3.2_amd64.deb && sudo dpkg -r overlay-scrollbar-gtk3_0.2.16+r357-0ubuntu1.1_amd64.debpuissudo apt-get -f install && sudo apt-get update && sudo apt-get upgrade
Lucio

Réponses:

3

Ok, si vous rencontrez toujours ce problème, il se produit parce que certains package ne fonctionnera 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 voir, libgail-3-0 nécessite que libgtk-3-0 soit 3.6.0-0ubuntu3. 2 mais libgtk-3-0 exige libgtk-3 commun d'être 3.6.0-0ubuntu3. 1 une diference de .1 versions. Ainsi, depuis libgtk-famille ne peut pas être de différentes versions, apt-get obtient une erreur de dépendance expectacular. Alors comment résoudre ça? Nous utilisons l' holdétat de l' emballage:

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 sentez que vous pouvez autoriser les mises à jour, il suffit d'exécuter:

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

Ceci va dire apt-get pour installer tout en utilisant le même numéro de version.

Braiam
la source
0

Pour tous ceux qui ont encore ces problèmes.

Je pense qu'ils apparaissent lorsque vous supprimez manuellement certains packages, mais ne nettoyez pas tous les déchets qu'ils laissent. Dans mon cas, j'avais libgtktoujours installé et c'était une version plus récente que je voulais installer. Il ne savait donc vraiment pas quoi faire des différentes versions de la bibliothèque.

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

PS. Notez que si vous l'avez fait echo "libgtk-3-0 hold" | sudo dpkg --set-selections , vous DEVEZ le faire echo "libgtk-3-0 install" | sudo dpkg --set-selectionspour pouvoir supprimer ce package.

niosus
la source