Perché alcuni pacchetti sono in conflitto con se stessi?


16

Dopo un aggiornamento a Oneiric ho avuto dei problemi con il gestore dei pacchetti (voleva rimuovere metà del mio sistema, inclusi i pacchetti libc6, zlib1g ecc.). Durante il combattimento con aptitude ho notato che alcuni pacchetti hanno meta-informazioni che indicano che sono 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 <ubuntu-devel-discuss@lists.ubuntu.com>
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 Conflicts: libc-binlinea? 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 <kubuntu-devel@lists.ubuntu.com>
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 "è in conflitto con se stessa".

Ora ho risolto i miei problemi con il gestore dei pacchetti, ma la domanda mi dà ancora fastidio: cosa significa quando un pacchetto è in conflitto con se stesso? A cosa serve questo?

Risposte:


25

Oneiric supporta Multi-Arch, ovvero ti consente di installare contemporaneamente pacchetti di architetture diverse (attualmente i386 e amd64 aka 32-bit e 64-bit). Alcuni pacchetti non possono essere installati contemporaneamente (come libc6: i386 e libc6: amd64). aptitude non è in grado di gestire questi casi e quindi pensa che potrebbe essere una buona idea rimuovere quei pacchetti. Si consiglia di utilizzare apt-getora.

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

Multi-Arch: straniero

Una descrizione di questo campo è disponibile all'indirizzo http://wiki.debian.org/Multiarch/Implementation#Multi-Arch:_foreign_support_packages


8

Aptitude non ti sta mostrando l'intera 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.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.