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 policy
wszystkich zainteresowanych pakietów: pastebin d3YcjPmJ . Wszystko wydaje się być z oficjalnej quantal
i quantal-updates
zwolnienia kanału i oficjalnego lustrze.
Ja również próbował sudo apt-get -f install
, sudo apt-get dist-upgrade
i sudo apt-get clean && sudo rm -r /var/cache/apt/archives/
, ale wszystkie prowadzą do tego samego błędu.
apt
updates
package-management
dpkg
Logan Best
źródło
źródło
/var/cache/apt/archives/
katalog i zaktualizować go ponownie?sudo apt-get clean && sudo rm -r /var/cache/apt/archives/
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.deb
a następniesudo apt-get -f install && sudo apt-get update && sudo apt-get upgrade
Odpowiedzi:
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.
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
hold
statusu paczki: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:
Inną opcją jest wymuszenie instalacji wersji:
Dzięki temu apt-get zainstaluje wszystko, używając tego samego numeru wersji.
źródło
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
libgtk
nadal 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-0
innych 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.źródło