La solution d'Alex supprime les erreurs, et il a presque résolu le problème, mais il ne vous permet pas de répondre aux questions (ce qui est bien lorsque vous avez préconfiguré les réponses et que vous exécutez un script, mais vraiment ennuyant lorsque vous essayez de nouveaux packages. ). Le problème principal est une interaction entre les hypothèses émises par ssh et les différentes interfaces de debconf.
Commençons par ssh. ssh suppose que lorsque vous ne spécifiez pas de commande à distance, vous voulez un pty et que vous ne spécifiez pas de télécommande (ce qui fonctionne remarquablement bien dans 90% des cas, mais pas celui-ci). Cela peut être remplacé par l' -t
option qui force un pty ou l' -T
option qui ne force pas pty (ou les options de fichier de configuration correspondantes). En outre, lors de l’utilisation d’un pty, la TERM
variable d’environnement est copiée (des exceptions peuvent s’appliquer à la documentation de contrôle pour plus de détails et au formulaire officiel de participation au concours). Il convient également de noter que l’ -x
option désactive le transfert X11 et l’ -X
active.
Debconf lui-même n'a pas d'exigences d'interactivité (de par leur conception), mais les différentes interfaces le font et chacune a des exigences différentes.
Je crois que la meilleure interface est gnome (il y a aussi une interface que je n'ai pas réussi à faire fonctionner). L’interface GNOME (et celle de kde également) nécessite des bibliothèques autres que celles par défaut et un serveur X11; par conséquent, la ligne de commande permettant de forcer l’intérieur du GNOME (une fois les bibliothèques appropriées installées) serait:
ssh -X <remote_srv> "DEBIAN_FRONTEND=gnome apt-get autoremove"
ou si vous préférez kde
ssh -X <remote_srv> "DEBIAN_FRONTEND=kde apt-get autoremove"
La boîte de dialogue (la valeur par défaut) nécessite un terminal utilisateur et un terminal avec un niveau minimum de fonctionnalités spécifiées dans la variable TERM (il s’agit en pratique de tout élément comportant une description terminfo complète, à l'exception de dumb).
ssh -t <remote_srv> "TERM=$TERM DEBIAN_FRONTEND=dialog apt-get autoremove"
ou
ssh -t <remote_srv> "apt-get autoremove"
l'interface de lecture a des exigences moins strictes et fonctionnera avec des terminaux stupides, mais aura besoin d'un pty.
ssh -t <remote_srv> "DEBIAN_FRONTEND=readline apt-get autoremove"
L'interface de l'éditeur dépend d'un éditeur qui aurait des exigences spécifiques selon l'éditeur.
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"
L’interface non interactive n’a pas d’exigences, mais elle ne pose aucune question (qui peut ne pas être ce que vous voulez).
ssh <remote_srv> "DEBIAN_FRONTEND=noninteractive apt-get autoremove"