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ê preseed as respostas e está sendo executado em um script, mas é realmente irritante quando você está tentando novos pacotes ) A questão central é uma interação entre as suposições feitas pelos vários frontends do ssh e do debconf.
Vamos começar com ssh. O ssh assume que, quando você não especifica um comando remoto, deseja um pty na extremidade remota e especifica um controle remoto (o que funciona notavelmente bem 90% do tempo, mas não este). Isso pode ser substituído pela -t
opção que força um pty ou pela -T
opção que não o força (ou pelas opções correspondentes do arquivo de configuração). Além disso, ao usar um pty, a TERM
variável de ambiente é copiada (exceções podem ser aplicadas à documentação da verificação para obter detalhes completos e formulário oficial de inscrição em sorteios). Observe também que a -x
opção desativa o encaminhamento X11 e o -X
habilita.
O próprio Debconf não possui requisitos de interatividade (por design), mas os vários front-end possuem, e cada um tem requisitos diferentes.
Eu acredito que o frontend mais bonito é o gnome (também existe um front end do ked que eu não consegui trabalhar). O frontend do gnome (e o 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 (depois que as bibliotecas apropriadas estiverem instaladas) seria
ssh -X <remote_srv> "DEBIAN_FRONTEND=gnome apt-get autoremove"
ou se você prefere o kde
ssh -X <remote_srv> "DEBIAN_FRONTEND=kde apt-get autoremove"
O frontend da caixa de 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 terminfo completa, exceto dumb).
ssh -t <remote_srv> "TERM=$TERM DEBIAN_FRONTEND=dialog apt-get autoremove"
ou
ssh -t <remote_srv> "apt-get autoremove"
o frontline do 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"
O frontend do editor depende de um editor que tenha 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 possui requisitos, mas não faz nenhuma pergunta (que pode ou não ser o que você deseja).
ssh <remote_srv> "DEBIAN_FRONTEND=noninteractive apt-get autoremove"