Por que alguns pacotes entram em conflito com eles mesmos?

15

Após uma atualização para o Oneiric, tive alguns problemas com o gerenciador de pacotes (ele queria remover metade do meu sistema, incluindo pacotes libc6, zlib1g, etc.). Durante a luta com o fitness notei que alguns pacotes possuem meta-informação que afirma que eles conflitam consigo mesmos. Exemplos:

% aptitude show libc-bin
Package: libc-bin                        
Essential: yes
New: yes
State: installed
Automatically installed: no
Version: 2.13-20ubuntu5
Priority: required
Section: libs
Maintainer: Ubuntu Developers <[email protected]>
Uncompressed Size: 3,420 k
Conflicts: libc-bin
Breaks: libc0.1 (< 2.10), libc0.1 (< 2.10), libc0.3 (< 2.10), libc0.3 (< 2.10), libc6 (< 2.10), libc6 (< 2.10), libc6.1 (< 2.10), libc6.1 (< 2.10)
Replaces: libc0.1, libc0.1, libc0.3, libc0.3, libc6, libc6, libc6.1, libc6.1
Provides: libc-bin
Provided by: libc-bin
Description: Embedded GNU C Library: Binaries

Veja a linha Conflicts: libc-bin ? Mais um:

% aptitude show qdbus   
Package: qdbus                           
New: yes
State: installed
Automatically installed: no
Version: 4:4.7.4-0ubuntu8.1
Priority: optional
Section: libs
Maintainer: Kubuntu Developers <[email protected]>
Uncompressed Size: 213 k
Depends: libc6 (>= 2.3.4), libgcc1 (>= 1:4.1.1), libqt4-dbus (= 4:4.7.4-0ubuntu8.1), libqt4-xml (= 4:4.7.4-0ubuntu8.1), libqtcore4 (= 4:4.7.4-0ubuntu8.1), libstdc++6 (>= 4.1.1)
Conflicts: qdbus
Breaks: libqt4-dbus (< 4:4.7.3-4ubuntu5), libqt4-dbus (< 4:4.7.3-4ubuntu5), qt4-dev-tools (< 4:4.7.3-4ubuntu6), qt4-dev-tools (< 4:4.7.3-4ubuntu6)
Replaces: libqt4-dbus (< 4:4.7.3-4ubuntu5), libqt4-dbus (< 4:4.7.3-4ubuntu5), qt4-dev-tools (< 4:4.7.3-4ubuntu6), qt4-dev-tools (< 4:4.7.3-4ubuntu6)
Provides: qdbus
Provided by: qdbus
Description: Qt 4 Dbus Tool

O mesmo recurso "conflita consigo mesmo".

Eu resolvi meus problemas com o gerenciador de pacotes agora, mas a questão ainda me incomoda: o que significa quando um pacote entra em conflito? Para que isso é usado?

    
por ulidtko 21.02.2012 / 15:26

3 respostas

25

O Oneiric suporta Multi-Arch, isto é, permite que você instale pacotes de diferentes arquiteturas simultaneamente (atualmente i386 e amd64 a.k.a. de 32 e 64 bits). Alguns pacotes não podem ser instalados simultaneamente (como libc6: i386 e libc6: amd64). O aptitude não pode lidar com esses casos e, portanto, acha que pode ser uma boa ideia remova esses pacotes. Recomenda-se usar apt-get agora.

Se você usar apt-cache show libc-bin , poderá ver a linha mencionando este conflito:

  

Multi-Arch: estrangeiro

Uma descrição desse campo pode ser encontrada no link

    
por Lekensteyn 21.02.2012 / 15:37
8

Aptidão não está mostrando toda a história.

$ apt-cache depends libc-bin | grep Conflicts
  Conflicts: libc-bin:i386

Eu estou em uma instalação de 64 bits, então, na verdade, ele está apenas em conflito com a versão de 32 bits.

    
por Oli 21.02.2012 / 15:49
7

Você encontrou o erro 831768 .

aptitude não entende o multiarch ainda, receio. É melhor evitar aptitude até que isso seja resolvido. Pode-se sobreviver com apt-get .

    
por tumbleweed 22.02.2012 / 00:20