%20elimina%20autom%C3%A1ticamente%20ciertos%20paquetes%20mientras%20instala%20otros%3F.png)
Por ejemploeditor de texto átomo. Cuando corro:
sudo apt-get install imagemagick # http://www.imagemagick.org/script/index.php
da:
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
Entonces, cuando intento:
sudo apt-get -f install
yo obtengo
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
Mi pregunta es: ¿por qué deberíaÁtomo¿Se puede desinstalar cuando intento instalar algo completamente diferente?
EDITAR: repitiendo el procedimiento pero con
apt-get autoremove
en lugar de
sudo apt-get -f install
resolvió el problema.
Pero todavía no entiendo por qué un paquete innecesario debería desencadenar la eliminación de un paquete que realmente necesito (átomo)
Respuesta1
eso sucede porque cada paquete en apt tiene una lista de dependencias, que puedes ver con:
apt-cache depends libgtkspell0 pidgin-data atom
Para conservar los paquetes, apt le sugiere que elimine atom, que tiene una dependencia que entra en conflicto con una de las dependencias que tiene atom. Tenga en cuenta en particular:
Conflicts: libgtkspell0:i386
parte de la salida.
Entonces, apt simplemente intenta resolver un conflicto. Se podría señalar que casi valdría la pena publicar un problema en el empaquetador de los dos paquetes que se eliminarán porque, en teoría, apt debería ofrecer eliminar el paquete que ya no es necesario, no un paquete que esté activo en el sistema, pero siempre es un equilibrar la creación y el mantenimiento de listas de dependencias/conflictos en un grupo de paquetes.
Si tuviera que adivinar, diría que apt internamente no tiene una forma de diferenciar entre los paquetes que se eliminarán y los paquetes activos al crear sus listas de dependencias, por lo que simplemente elige el resultado con el menor número de negativos (es decir, la eliminación forzada de un paquete) resultado.