masalah ketergantungan libgtk-3-0

12

Saya telah mencoba memperbarui paket standar pada kotak Ubuntu saya. Sebenarnya tidak ada tambahan di kotak ini kecuali untuk VirtualBox untuk beberapa hal Windows yang saya jalankan. Ini satu keluaran:

$ 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

Dan satu lagi dengan opsi -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)

Ini output apt-cache policyuntuk semua paket yang terkait: pastebin d3YcjPmJ . Semua tampaknya berasal dari saluran resmi quantaldan quantal-updatesrilis dan cermin resmi.

Saya juga sudah mencoba sudo apt-get -f install, sudo apt-get dist-upgradedan sudo apt-get clean && sudo rm -r /var/cache/apt/archives/, tetapi semuanya mengarah ke kesalahan yang sama.

Logan Terbaik
sumber
Ya saya membuat pembaruan dengan paket baru, dan ya saya menjalankan pembaruan sebelum memutakhirkan
Logan Best
Kedua perintah tersebut mendapatkan output yang sama dengan -f output dalam permintaan asli.
Logan Best
1
Sudahkah Anda mencoba menghapus /var/cache/apt/archives/direktori dan memperbarui lagi? sudo apt-get clean && sudo rm -r /var/cache/apt/archives/
Lucio
Mencoba dan kesalahan yang sama. Pertanyaan diperbarui.
Logan Best
@LoganBest Tolong, coba dengan ini: 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.debdan kemudiansudo apt-get -f install && sudo apt-get update && sudo apt-get upgrade
Lucio

Jawaban:

3

Oke, jika Anda masih mengalami masalah ini, itu terjadi karena beberapa paket tidak akan berfungsi jika versi rekan-rekan mereka tidak sama.

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

Seperti yang Anda lihat libgail-3-0 membutuhkan libgtk-3-0 menjadi 3.6.0-0ubuntu3. 2 tetapi libgtk-3-0 membutuhkan libgtk-3-common menjadi 3.6.0-0ubuntu3. 1 perbedaan versi .1. Jadi, karena libgtk-family tidak bisa dari versi yang berbeda, apt-get mendapat kesalahan dependensi yang luar biasa. Jadi bagaimana cara mengatasinya? Kami menggunakan holdstatus paket:

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

Dengan ini, Anda dapat memutakhirkan secara normal sampai konflik ketergantungan diselesaikan di repositori Ubuntu.

Setelah Anda merasa dapat memperbolehkan upgrade, jalankan saja:

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

Opsi lain adalah memaksa versi untuk diinstal:

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

Ini akan memberitahu apt-get untuk menginstal semuanya menggunakan nomor versi yang sama.

Braiam
sumber
0

Bagi siapa saja yang masih memiliki masalah tersebut.

Saya percaya mereka muncul ketika Anda secara manual menghapus beberapa paket tetapi tidak membersihkan semua sampah yang mereka tinggalkan. Dalam kasus saya, saya libgtkmasih menginstal dan itu adalah versi yang lebih baru maka saya ingin menginstal. Jadi itu benar-benar tidak tahu apa yang harus dilakukan dengan berbagai versi perpustakaan.

Setelah hanya menghapus libgtk-3-0paket dan lainnya dengan masalah yang sama semuanya berjalan dengan baik.

PS. Perhatikan bahwa jika Anda sudah selesai echo "libgtk-3-0 hold" | sudo dpkg --set-selections maka Anda HARUS lakukan echo "libgtk-3-0 install" | sudo dpkg --set-selectionsuntuk dapat menghapus paket ini.

niosus
sumber