%20remove%20automaticamente%20certos%20pacotes%20enquanto%20instala%20outros%3F.png)
Por exemploEditor de texto átomo. Quando 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 recebo
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 deveriaÁtomoser desinstalado quando tento instalar algo completamente diferente?
EDITAR: repetindo o procedimento mas com
apt-get autoremove
em vez de
sudo apt-get -f install
resolveu o problema.
Mas ainda não entendo por que um pacote desnecessário deve desencadear a remoção de um pacote que eu realmente preciso (atom)
Responder1
isso acontece porque cada pacote no apt possui 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 o atom, que possui uma dependência que entra em conflito com uma das dependências que o atom 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 quase vale a pena postar um problema para o empacotador dos dois pacotes a serem removidos porque em teoria o apt deveria oferecer a remoção do pacote que não é mais necessário, não um pacote que está ativo no sistema, mas é sempre um equilibrar a criação e manutenção de listas de dependências/conflitos em um pool de pacotes.
Se eu fosse adivinhar, acho que o apt internamente não tem como diferenciar entre pacotes a serem removidos e ativos ao criar suas listas de dependências, então ele simplesmente escolhe o resultado com o menor número negativo (ou seja, remoção forçada de um pacote) resultado.