A solução de Alex suprime erros, e ele quase acertou a causa, mas não permite que você responda a nenhuma pergunta (o que é bom quando você pré-configurou as respostas e está executando um script, mas é realmente irritante quando você está tentando novos pacotes). A questão central é uma interação entre as suposições feitas pelos diversos front ends do ssh e do debconf.
Vamos começar com ssh. O ssh assume que, quando você não especifica um comando remoto, você quer um pty no ponto remoto e que você não especifica um controle remoto (que funciona notavelmente bem 90% do tempo, mas não este). Isso pode ser substituído pela opção -t
, que força um pty ou a opção -T
que não força nenhum pty (ou as opções de arquivo de configuração correspondentes). Além disso, ao usar uma pty, a variável de ambiente TERM
é copiada (exceções podem ser aplicadas à documentação de verificação para detalhes completos e formulário de entrada de sorteio oficial). Além disso, observe que a opção -x
desabilita o encaminhamento do X11 e o -X
permite isso.
O próprio Debconf não possui requisitos de interatividade (por design), mas os diversos frontends fazem, e cada um tem requisitos diferentes.
Eu acredito que o frontend mais bonito é o gnome (há também um front-end ked que eu não consegui trabalhar). O frontend do gnome (e o do kde também) requer algumas bibliotecas não padrão e um servidor X11, portanto a linha de comando para forçar o frontend do gnome (uma vez que as bibliotecas apropriadas estiverem instaladas) seria
ssh -X <remote_srv> "DEBIAN_FRONTEND=gnome apt-get autoremove"
ou se você preferir o kde
ssh -X <remote_srv> "DEBIAN_FRONTEND=kde apt-get autoremove"
O frontend do diálogo (o padrão) requer um pty e um terminal com um nível mínimo de funcionalidade especificado na variável TERM (na prática, isso é qualquer coisa com uma descrição completa do terminfo, exceto burra).
ssh -t <remote_srv> "TERM=$TERM DEBIAN_FRONTEND=dialog apt-get autoremove"
ou
ssh -t <remote_srv> "apt-get autoremove"
o frontend readline possui requisitos menos rigorosos e funcionará com terminais burros, mas precisará de um pty.
ssh -t <remote_srv> "DEBIAN_FRONTEND=readline apt-get autoremove"
A interface do editor depende de um editor que teria requisitos específicos, dependendo do 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"
O front-end não interativo não tem requisitos, mas não faz perguntas (que podem ou não ser o que você quer).
ssh <remote_srv> "DEBIAN_FRONTEND=noninteractive apt-get autoremove"