Perché alcuni pacchetti sono in conflitto con se stessi?

15

Dopo un aggiornamento a Oneiric ho avuto alcuni problemi con il gestore pacchetti (voleva rimuovere metà del mio sistema, inclusi libc6, pacchetti zlib1g ecc.). Durante il combattimento con aptitude ho notato che alcuni pacchetti hanno una meta-informazione che afferma di essere in conflitto con se stessi. Esempi:

% 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

Vedi la riga Conflicts: libc-bin ? Ancora uno:

% 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

La stessa funzione "conflitti con se stessa".

Ho risolto i miei problemi con il gestore dei pacchetti ora, ma la domanda mi infastidisce ancora: cosa significa quando un pacchetto è in conflitto con se stesso? A cosa serve questo?

    
posta ulidtko 21.02.2012 - 15:26

3 risposte

25

Oneiric supporta Multi-Arch, che consente di installare pacchetti di diverse architetture contemporaneamente (attualmente i386 e amd64 a.k.a. 32-bit e 64-bit). Alcuni pacchetti non possono essere installati contemporaneamente (come libc6: i386 e libc6: amd64). aptitude non può gestire questi casi e quindi pensa che potrebbe essere una buona idea rimuovere quei pacchetti. Si consiglia di utilizzare apt-get ora.

Se utilizzi apt-cache show libc-bin , puoi vedere la riga che menziona questo conflitto:

  

Multi-Arch: foreign

Una descrizione di questo campo può essere trovata all'indirizzo link

    
risposta data Lekensteyn 21.02.2012 - 15:37
8

Attitude non ti sta mostrando tutta la storia.

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

Sono su un'installazione a 64 bit quindi in realtà è solo in conflitto con la sua controparte a 32 bit.

    
risposta data Oli 21.02.2012 - 15:49
7

Ti sei imbattuto in bug 831768 .

aptitude non capisce ancora il multiarch, temo. È meglio evitare aptitude finché questo non viene risolto. Uno può sopravvivere con apt-get .

    
risposta data tumbleweed 22.02.2012 - 00:20

Leggi altre domande sui tag