Problemas de dependencia de libgtk-3-0

12

He estado tratando de actualizar paquetes estándar en mi caja de Ubuntu. Literalmente, no hay nada extra en este cuadro, excepto VirtualBox para algunas cosas de Windows que ejecuto. Aquí hay una salida:

$ 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

Y otro con la opción -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)

Aquí está la salida para apt-cache policytodos los paquetes involucrados: pastebin d3YcjPmJ . Todos parecen ser del canal oficial quantaly de quantal-updateslanzamiento y un espejo oficial.

También lo intenté sudo apt-get -f install, sudo apt-get dist-upgradey sudo apt-get clean && sudo rm -r /var/cache/apt/archives/, pero todos conducen al mismo error.

Logan Best
fuente
Sí, hice la actualización con los nuevos paquetes, y sí, ejecuté la actualización antes de la actualización
Logan Best, el
Ambos comandos obtuvieron la misma salida que la salida -f en la solicitud original.
Logan Best
1
¿Has intentado eliminar el /var/cache/apt/archives/directorio y actualizar de nuevo? sudo apt-get clean && sudo rm -r /var/cache/apt/archives/
Lucio
Probado y el mismo error. Pregunta actualizada
Logan Best
@LoganBest Por favor, intente con esto: 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.deby luegosudo apt-get -f install && sudo apt-get update && sudo apt-get upgrade
Lucio

Respuestas:

3

Ok, si todavía tiene este problema, sucede porque algunos paquetes no funcionarán si las versiones de sus pares no son las mismas.

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

Como puede ver, libgail-3-0 requiere que libgtk-3-0 sea 3.6.0-0ubuntu3. 2 pero libgtk-3-0 requiere que libgtk-3-common sea 3.6.0-0ubuntu3. 1 una diferencia de .1 versiones. Entonces, dado que libgtk-family no puede ser de versiones diferentes, apt-get obtiene un error de dependencia expectacular. Entonces, ¿cómo resolver esto? Usamos el holdestado del paquete:

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

Con esto, puede actualizar normalmente hasta que los conflictos de dependencia se resuelvan en los repositorios de Ubuntu.

Una vez que sienta que puede permitir actualizaciones, simplemente ejecute:

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

Otra opción es forzar la instalación de versiones:

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

Esto le indicará a apt-get que instale todo utilizando el mismo número de versión.

Braiam
fuente
0

Para cualquiera que todavía tenga esos problemas.

Creo que aparecen cuando eliminas manualmente algunos paquetes pero no limpias toda la basura que dejan. En mi caso, libgtktodavía lo había instalado y era una versión más nueva que quería instalar. Así que realmente no sabía qué hacer con las diferentes versiones de la biblioteca.

Después de eliminar el libgtk-3-0y otros paquetes con problemas similares, todo salió bien.

PD. Tenga en cuenta que si lo ha hecho, echo "libgtk-3-0 hold" | sudo dpkg --set-selections entonces DEBE hacerlo echo "libgtk-3-0 install" | sudo dpkg --set-selectionspara poder eliminar este paquete.

niosus
fuente