Почему Linux (на базе Mint 17.2, Ubuntu 14.04, KDE) автоматически удаляет некоторые пакеты при установке других?

Почему Linux (на базе Mint 17.2, Ubuntu 14.04, KDE) автоматически удаляет некоторые пакеты при установке других?

НапримерТекстовый редактор Atom. Когда я бегу:

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

дает:

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

Итак, когда я пытаюсь:

sudo apt-get -f install

я получил

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

Мой вопрос: почемуАтомудаляться, когда я пытаюсь установить что-то совершенно другое?

РЕДАКТИРОВАТЬ: повторение процедуры, но с

apt-get autoremove

вместо

sudo apt-get -f install

решил проблему.

Но я все еще не понимаю, почему ненужный пакет должен вызывать удаление пакета, который мне на самом деле нужен (атом)

решение1

это происходит потому, что каждый пакет в apt имеет список зависимостей, который можно просмотреть с помощью:

apt-cache depends libgtkspell0 pidgin-data atom

Чтобы сохранить пакеты, apt предлагает вам удалить atom, у которого есть зависимость, конфликтующая с одной из зависимостей atom. Обратите внимание, в частности, на:

Conflicts: libgtkspell0:i386

часть вывода.

Так что apt просто пытается разрешить конфликт. Можно было бы отметить, что, возможно, стоит отправить сообщение об ошибке упаковщику двух пакетов, которые нужно удалить, потому что в теории apt должен предложить удалить пакет, который больше не нужен, а не пакет, который активен в системе, но это всегда баланс, создающий и поддерживающий списки зависимостей/конфликтов в пуле пакетов.

Если бы мне пришлось делать предположения, я бы предположил, что apt на самом деле не имеет внутреннего способа различать удаляемые и активные пакеты при создании списков зависимостей, поэтому он просто выбирает результат с наименьшим количеством отрицательных результатов (т. е. принудительного удаления пакета).

Связанный контент