Por que o Linux (Mint 17.2, baseado no Ubuntu 14.04. KDE) remove automaticamente certos pacotes enquanto instala outros?

1

Por exemplo, editor de texto Atom . Quando eu corro:

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

dá:

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

Então, quando eu tento:

sudo apt-get -f install

Eu obtenho

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

Minha pergunta é: por que o Atom deve ser desinstalado quando tento instalar algo completamente diferente?

EDITAR : repeting the procedure mas com

apt-get autoremove

em vez de

sudo apt-get -f install

resolveu o problema.

Mas ainda não entendi porque um pacote desnecessário deve acionar a remoção de um pacote que eu realmente preciso (átomo)

    
por dragonmnl 06.11.2015 / 16:29

1 resposta

1

isso acontece porque cada pacote no apt tem uma lista de dependências, que você pode ver com:

apt-cache depends libgtkspell0 pidgin-data atom

Para reter os pacotes o apt está sugerindo que você remova, átomo, que tem uma dependência que entra em conflito com uma das dependências que o átomo possui. Observe em particular o:

Conflicts: libgtkspell0:i386

parte da saída.

Então apt está simplesmente tentando resolver um conflito. Pode-se notar que pode valer a pena postar um problema para o empacotador dos dois pacotes ser removido porque, em teoria, o apt deve se oferecer para remover o pacote não mais necessário, não um pacote que esteja ativo no sistema, mas é sempre um equilibrar a criação e manutenção de listas de dependência / conflito em um pool de pacotes.

Se eu tivesse que adivinhar, eu acho que o apt internamente realmente não tem uma maneira de diferenciar entre remover e ativar pacotes ao criar suas listas de dependência, então é simplesmente escolher o resultado com o menor número negativo (ou seja, remoção forçada de um pacote).

    
por 06.11.2015 / 20:43

Tags