
Me gustaría eliminar la mayoría de los paquetes de la categoría X11 de mi sistema. Sin embargo, algunos de esos paquetes dependen del paquete 'beaglebone'. ¿Cómo podría pedirle a aptitude que elimine todo lo que está en la categoría X11, con la excepción de los paquetes de los que depende 'beaglebone'?
Puede ver a continuación que recomienda 'beaglebone' como uno de los paquetes que deben desinstalarse a riesgo de dañarse.
¿Cómo puedo asegurarme de que este paquete y sus dependencias se conserven después de la eliminación?
Respuesta1
La respuesta corta es:
aptitude remove '~sX11 ! ~Rbeaglebone'
Sin embargo, en este tipo de situación (hay unalote¡De cosas que dependen de X11!), recomiendo usar el solucionador interactivo. Para hacer esto, agregue la --schedule-only
opción a lo anterior y ejecute aptitude
nuevamente sin argumentos. Es posible que también deba agregar -o Aptitude::Auto-Fix-Broken=false
uno o ambos comandos (si aún no está en su configuración), pero no creo que lo necesite en la medida de lo posible. Puedo ver que la resolución automática solo ocurre cuando presionas gen la interfaz.
Una vez que tenga la interfaz de ncurses ejecutándose, presione epara examinar la primera solución y observar las eliminaciones adicionales. Si ve alguno que no desea, use las teclas de flecha para seleccionarlo y presione rpara rechazar la acción. Presione .para cargar la siguiente solución. Ahora debería proporcionar una solución que no incluya ninguno de sus rechazos. Repita según sea necesario y presione !para aceptar la solución y continuar con normalidad.
Respuesta2
Creo que puede utilizar uno de los siguientes métodos para "excluir" el paquete "beaglebone", lo que debería obligar a que cualquiera de sus dependencias permanezca.
$ sudo apt-mark hold <package>
o
$ echo <package> hold | sudo dpkg --set-selections
El primero hace uso de apt-mark
su hold
característica.
hold
hold is used to mark a package as held back, which will prevent the
package from being automatically installed, upgraded or removed. The
command is only a wrapper around dpkg --set-selections and the state
is therefore maintained by dpkg(1) and not affected by the --file
option.
El segundo se utiliza dpkg
para marcar un paquete como "en espera".
--set-selections
Set package selections using file read from stdin. This file should
be in the format 'package state', where state is one of install,
hold, deinstall or purge. Blank lines and comment lines beginning
with '#' are also permitted.