Problemy z zależnością libgtk-3-0

12

Próbowałem zaktualizować standardowe pakiety w moim systemie Ubuntu. Nie ma dosłownie nic więcej na tym polu oprócz VirtualBox dla niektórych rzeczy Windows, które uruchamiam. Oto jeden wynik:

$ 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

I kolejny z opcją -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)

Oto wynik dla apt-cache policywszystkich zainteresowanych pakietów: pastebin d3YcjPmJ . Wszystko wydaje się być z oficjalnej quantali quantal-updateszwolnienia kanału i oficjalnego lustrze.

Ja również próbował sudo apt-get -f install, sudo apt-get dist-upgradei sudo apt-get clean && sudo rm -r /var/cache/apt/archives/, ale wszystkie prowadzą do tego samego błędu.

Logan Best
źródło
Tak, zrobiłem aktualizację z nowymi pakietami i tak, uruchomiłem aktualizację przed aktualizacją
Logan Best
Oba te polecenia otrzymały takie same dane wyjściowe jak -f w oryginalnym żądaniu.
Logan Best,
1
Czy próbowałeś usunąć /var/cache/apt/archives/katalog i zaktualizować go ponownie? sudo apt-get clean && sudo rm -r /var/cache/apt/archives/
Lucio
Próbowałem i ten sam błąd. Zaktualizowane pytanie.
Logan Best,
@LoganBest Proszę spróbować z tym: 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.deba następniesudo apt-get -f install && sudo apt-get update && sudo apt-get upgrade
Lucio

Odpowiedzi:

3

Ok, jeśli nadal występuje ten problem, dzieje się tak, ponieważ niektóre pakiety nie będą działać, jeśli wersje ich rówieśników nie są takie same.

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

Jak widać libgail-3-0 wymaga libgtk-3-0 w wersji 3.6.0-0ubuntu3. 2, ale libgtk-3-0 wymaga libgtk-3-common do wersji 3.6.0-0ubuntu3. 1 różnica między wersjami .1. Zatem, ponieważ rodzina libgtk nie może mieć różnych wersji, apt-get otrzymuje oczekiwany błąd zależności. Jak to rozwiązać? Używamy holdstatusu paczki:

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

Dzięki temu możesz aktualizować normalnie, dopóki konflikty zależności nie zostaną rozwiązane w repozytoriach Ubuntu.

Gdy poczujesz, że możesz zezwolić na aktualizacje, po prostu uruchom:

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

Inną opcją jest wymuszenie instalacji wersji:

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

Dzięki temu apt-get zainstaluje wszystko, używając tego samego numeru wersji.

Braiam
źródło
0

Dla każdego, kto nadal ma te problemy.

Sądzę, że pojawiają się, gdy ręcznie usuwasz niektóre paczki, ale nie czyścisz wszystkich śmieci, które pozostawiają. W moim przypadku libgtknadal instalowałem i była to nowsza wersja, którą chciałem zainstalować. Więc tak naprawdę nie wiedział, co zrobić z różnymi wersjami biblioteki.

Po usunięciu libgtk-3-0innych pakietów z podobnymi problemami wszystko poszło dobrze.

PS. Pamiętaj, że jeśli to zrobiłeś, echo "libgtk-3-0 hold" | sudo dpkg --set-selections musisz zrobić echo "libgtk-3-0 install" | sudo dpkg --set-selections, aby móc usunąć ten pakiet.

Niosus
źródło