libgtk-3-0 종속 문제


12

우분투 상자에서 표준 패키지를 업데이트하려고했습니다. 내가 실행하는 일부 Windows 물건에 대한 VirtualBox를 제외 하고는이 상자에 문자 그대로 추가 내용이 없습니다. 다음은 하나의 출력입니다.

$ 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 . 모두 공식 quantalquantal-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/
Lucio

시도하고 같은 오류. 질문이 업데이트되었습니다.
로건 베스트

@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 버전의 차이. 따라서 libgtk-family는 다른 버전이 될 수 없으므로 apt-get은 expectacular 종속성 오류를 얻습니다. 그래서 이것을 해결하는 방법? 우리는 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비슷한 문제가있는 패키지와 다른 패키지를 삭제 한 후 모든 것이 정상적으로 진행되었습니다.

추신. 당신이 할 경우 유의 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.