ปัญหาการพึ่งพา 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 ในคำขอต้นฉบับ
โลแกน Best

1
คุณลองลบ/var/cache/apt/archives/ไดเรกทอรีและอัปเดตอีกครั้งหรือไม่ sudo apt-get clean && sudo rm -r /var/cache/apt/archives/
Lucio

พยายามและข้อผิดพลาดเดียวกัน อัปเดตคำถาม
โลแกน Best

@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-family ไม่สามารถเป็นเวอร์ชั่นที่แตกต่างกัน 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

สิ่งนี้จะบอกถึงการติดตั้งทุกอย่างโดยใช้หมายเลขเวอร์ชันเดียวกัน


0

สำหรับใครที่ยังมีปัญหาเหล่านั้นอยู่

ฉันเชื่อว่ามันจะปรากฏขึ้นเมื่อคุณลบแพคเกจด้วยตนเอง แต่ไม่ทำความสะอาดขยะทั้งหมดที่ทิ้งไว้ ในกรณีของฉันฉันlibgtkยังคงติดตั้งและเป็นรุ่นที่ใหม่กว่าแล้วฉันต้องการติดตั้ง ดังนั้นจริง ๆ ไม่ทราบว่าจะทำอย่างไรกับไลบรารีรุ่นต่าง ๆ

หลังจากเพียงแค่ลบlibgtk-3-0และแพคเกจอื่น ๆ ที่มีปัญหาคล้ายกันทุกอย่างดำเนินไปด้วยดี

PS โปรดทราบว่าถ้าคุณทำเสร็จ echo "libgtk-3-0 hold" | sudo dpkg --set-selections แล้วคุณต้องทำ echo "libgtk-3-0 install" | sudo dpkg --set-selectionsเพื่อที่จะสามารถลบแพ็คเกจนี้ได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.