Warum entfernt Linux (basierend auf Mint 17.2, Ubuntu 14.04, KDE) automatisch bestimmte Pakete, während andere installiert werden?

Warum entfernt Linux (basierend auf Mint 17.2, Ubuntu 14.04, KDE) automatisch bestimmte Pakete, während andere installiert werden?

Zum BeispielAtom-Texteditor. Wenn ich laufe:

sudo apt-get install imagemagick # http://www.imagemagick.org/script/index.php

gibt:

you might want to run 'apt-get -f install' to correct these: 
The following packages have unmet dependencies:  virtualbox-5.0:i386 : Depends: psmisc:i386 but it is not going to be installed

Wenn ich es also versuche:

sudo apt-get -f install

Ich bekomme

The following packages were automatically installed and are no longer required:
  libgtkspell0 pidgin-data
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  psmisc:i386
The following packages will be REMOVED:
  atom gconf2 psmisc
The following NEW packages will be installed:
  psmisc:i386

Meine Frage ist: Warum sollteAtomdeinstalliert werden, wenn ich versuche, etwas völlig anderes zu installieren?

BEARBEITEN: Wiederholung des Vorgangs, jedoch mit

apt-get autoremove

anstatt

sudo apt-get -f install

hat das Problem gelöst.

Aber ich verstehe immer noch nicht, warum ein nicht benötigtes Paket die Entfernung eines Pakets auslösen sollte, das ich eigentlich brauche (Atom)

Antwort1

das liegt daran, dass jedes Paket in apt eine Liste von Abhängigkeiten hat, die Sie wie folgt sehen können:

apt-cache depends libgtkspell0 pidgin-data atom

Um die Pakete beizubehalten, empfiehlt apt, dass Sie atom entfernen, da dieses eine Abhängigkeit hat, die mit einer der Abhängigkeiten von atom in Konflikt steht. Beachten Sie insbesondere Folgendes:

Conflicts: libgtkspell0:i386

Teil der Ausgabe.

Apt versucht also einfach, einen Konflikt zu lösen. Man könnte anmerken, dass es sich fast lohnen könnte, dem Paketersteller der beiden zu entfernenden Pakete ein Problem zu melden, da Apt theoretisch anbieten sollte, das nicht mehr benötigte Paket zu entfernen, nicht ein Paket, das im System aktiv ist. Das Erstellen und Verwalten von Abhängigkeits-/Konfliktlisten in einem Paketpool ist jedoch immer eine Abwägung.

Wenn ich raten müsste, würde ich sagen, dass Apt intern nicht wirklich über eine Möglichkeit verfügt, beim Erstellen seiner Abhängigkeitslisten zwischen zu entfernenden und aktiven Paketen zu unterscheiden. Es wählt daher einfach das Ergebnis mit den wenigsten negativen Folgen (z. B. erzwungene Entfernung eines Pakets) aus.

verwandte Informationen