Problemas de dependência da libgtk-3-0

12

Eu tenho tentado atualizar pacotes padrão na minha caixa Ubuntu. Não há literalmente nada extra nessa caixa, exceto o VirtualBox para algumas coisas que eu corro no Windows. Aqui está uma saída:

$ 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

E outro com a opção -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)

Aqui está a saída para apt-cache policytodos os pacotes envolvidos: pastebin d3YcjPmJ . Todos parecem ser do canal oficial quantale de quantal-updateslançamento e um espelho oficial.

Eu também tentei sudo apt-get -f install, sudo apt-get dist-upgradee sudo apt-get clean && sudo rm -r /var/cache/apt/archives/, mas todos levam ao mesmo erro.

Logan Best
fonte
Sim eu fiz a atualização com os novos pacotes, e sim, eu corri atualização antes da atualização
Logan Melhor
Ambos os comandos obtiveram a mesma saída que a saída -f na solicitação original.
Logan Melhor
1
Você já tentou excluir o /var/cache/apt/archives/diretório e atualizar novamente? sudo apt-get clean && sudo rm -r /var/cache/apt/archives/
Lucio
Tentei e mesmo erro. Pergunta atualizada.
Logan Melhor
@LoganBest Por favor, tente com isso: 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.debe entãosudo apt-get -f install && sudo apt-get update && sudo apt-get upgrade
Lucio

Respostas:

3

Ok, se você ainda está enfrentando esse problema, isso acontece porque alguns pacotes não funcionam se as versões de seus pares não forem as mesmas.

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

Como você pode ver, o libgail-3-0 requer que o libgtk-3-0 seja 3.6.0-0ubuntu3. 2, mas libgtk-3-0 requer que libgtk-3-common seja 3.6.0-0ubuntu3. 1 uma diferença de 0,1 versões. Portanto, como a libgtk-family não pode ter versões diferentes, o apt-get recebe um erro de dependência esperado. Então, como resolver isso? Usamos o holdstatus do pacote:

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

Com isso, você pode atualizar normalmente até que os conflitos de dependência sejam resolvidos nos repositórios do Ubuntu.

Depois de sentir que pode permitir atualizações, basta executar:

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

Outra opção é forçar a instalação de versões:

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

Isso informará ao apt-get para instalar tudo usando o mesmo número de versão.

Braiam
fonte
0

Para quem ainda tem esses problemas.

Eu acredito que eles aparecem quando você exclui manualmente alguns pacotes, mas não limpa todo o lixo que eles deixam para trás. No meu caso, eu libgtkainda tinha instalado e era uma versão mais nova que eu queria instalar. Portanto, ele realmente não sabia o que fazer com diferentes versões da biblioteca.

Depois de excluir o libgtk-3-0e outros pacotes com problemas semelhantes, tudo correu bem.

PS. Observe que, se você tiver concluído, echo "libgtk-3-0 hold" | sudo dpkg --set-selections você deve fazer echo "libgtk-3-0 install" | sudo dpkg --set-selectionspara poder excluir este pacote.

niosus
fonte