Питання залежності libgtk-3-0


12

Я намагався оновити стандартні пакети на своєму полі Ubuntu. У цьому вікні буквально нічого зайвого, крім VirtualBox для деяких речей Windows, які я запускаю. Ось один вихід:

$ 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

І ще одна з опцією -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)

Ось вихід для apt-cache policyвсіх відповідних пакетів: pastebin d3YcjPmJ . Все , здається, від офіційного quantalі quantal-updatesзвільнення каналу і офіційного дзеркала.

Я також спробував sudo apt-get -f install, sudo apt-get dist-upgradeі sudo apt-get clean && sudo rm -r /var/cache/apt/archives/, але все веде до однієї і тієї ж помилку.


Так, я оновив нові пакети, і так, я запустив оновлення перед оновленням
Logan Best

Обидві ці команди отримали той самий вихід, що і вихід -f у вихідному запиті.
Логан Кращий

1
Ви спробували видалити /var/cache/apt/archives/каталог та оновити знову? sudo apt-get clean && sudo rm -r /var/cache/apt/archives/
Лусіо

Спробувала та сама помилка. Оновлене запитання.
Логан Кращий

@LoganBest Будь ласка, спробуйте з цим: 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а потімsudo apt-get -f install && sudo apt-get update && sudo apt-get upgrade
Lucio

Відповіді:


3

Гаразд, якщо ви все ще відчуваєте цю проблему, це трапляється через те, що якийсь пакет не працюватиме, якщо версії їхніх однолітків не однакові.

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

Як ви бачите, libgail-3-0 вимагає, щоб libgtk-3-0 був 3.6.0-0ubuntu3. 2, але libgtk-3-0 вимагає, щоб libgtk-3-common був 3.6.0-0ubuntu3. 1 різниця .1 версії. Тому, оскільки сім'я libgtk не може бути різної версії, apt-get отримує помилку очікування залежності. То як це вирішити? Ми використовуємо holdстатус пакету:

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

З цим можна нормально оновити, поки конфлікти залежностей не будуть вирішені у сховищах Ubuntu.

Як тільки відчуєте, що можете дозволити оновлення, просто запустіть:

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

Інший варіант - змусити інсталювати версії:

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

Це дозволить apt-get встановити все, використовуючи той самий номер версії.


0

Для всіх, хто все ще має ці проблеми.

Я вважаю, що вони з'являються, коли ви видаляєте деякі пакети вручну, але не прибираєте весь сміття, яке вони залишають після себе. У моєму випадку я libgtkвсе-таки встановив, і це була новіша версія, то я хотів встановити. Тож насправді не було відомо, що робити з різними версіями бібліотеки.

Після видалення libgtk-3-0та інших пакетів з подібними проблемами все пішло нормально.

PS. Зауважте, що якщо ви це зробили, echo "libgtk-3-0 hold" | sudo dpkg --set-selections то Ви повинні зробити echo "libgtk-3-0 install" | sudo dpkg --set-selections, щоб можна було видалити цей пакет.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.