La solución de Alex suprime los errores, y casi tiene la causa correcta, pero no le permite responder a ninguna pregunta (lo cual está bien cuando ha preseleccionado las respuestas y se está ejecutando desde un script, pero es realmente molesto cuando intenta nuevos paquetes ) El tema central es una interacción entre las suposiciones hechas por ssh y las diversas interfaces de debconf.
Comencemos con ssh. ssh asume que cuando no especifica un comando remoto, desea una pty en el extremo remoto y que especifica un control remoto que no (que funciona notablemente bien el 90% del tiempo, pero no este). Esto puede ser anulado por la -t
opción que fuerza una pty o la -T
opción que no fuerza pty (o las opciones de archivo de configuración correspondientes). Además, cuando se usa una pty TERM
, se copia la variable de entorno (se pueden aplicar excepciones para verificar la documentación de los detalles completos y el formulario de inscripción oficial del sorteo). También cabe destacar que la -x
opción deshabilita el reenvío X11 y lo -X
habilita.
Debconf en sí no tiene requisitos de interactividad (por diseño), pero las diversas interfaces sí, y cada una tiene requisitos diferentes.
Creo que el frontend más atractivo es gnome (también hay un front-end ked que no puse a trabajar). La interfaz gnome (y la kde también) requiere algunas bibliotecas no predeterminadas y un servidor X11, por lo tanto, la línea de comando para forzar la interfaz gnome (una vez que se instalen las bibliotecas apropiadas)
ssh -X <remote_srv> "DEBIAN_FRONTEND=gnome apt-get autoremove"
o si prefieres kde
ssh -X <remote_srv> "DEBIAN_FRONTEND=kde apt-get autoremove"
La interfaz de diálogo (el valor predeterminado) requiere una pty y un terminal con un nivel mínimo de funcionalidad especificado en la variable TERM (en la práctica, esto es cualquier cosa con una descripción completa de terminfo excepto tonto).
ssh -t <remote_srv> "TERM=$TERM DEBIAN_FRONTEND=dialog apt-get autoremove"
o
ssh -t <remote_srv> "apt-get autoremove"
la interfaz de línea de lectura tiene requisitos menos estrictos y funcionará con terminales tontos, pero necesitará un pie.
ssh -t <remote_srv> "DEBIAN_FRONTEND=readline apt-get autoremove"
La interfaz del editor depende de un editor que tenga requisitos específicos según el editor.
ssh -t <remote_srv> "DEBIAN_FRONTEND=editor EDITOR=vi apt-get autoremove"
ssh -X <remote_srv> "DEBIAN_FRONTEND=editor EDITOR=gvim\ -f apt-get autoremove"
La interfaz no interactiva no tiene requisitos, pero no hace ninguna pregunta (que puede o no ser lo que desea).
ssh <remote_srv> "DEBIAN_FRONTEND=noninteractive apt-get autoremove"