Você precisa definir DEBIAN_FRONTEND=noninteractive
. Eu pareço lembrar que foi um pouco difícil de encontrar, já que na verdade é uma opção para debconf
, não apt-get
. No entanto, é mencionado, por exemplo, aqui e, claro, no manual de debconf
.
Então, faça um script que contenha
#/bin/sh
DEBIAN_FRONTEND=noninteractive apt-get upgrade -q -y
e execute isso do cron. E lembre-se de executar apt-get update
também.
É claro que você deve usar unattended-upgrades
ou algo especialmente projetado para isso.
Mas eu tenho uma máquina Debian usando esse script e funciona bem:
#/bin/sh
apt-get -q -q update
if apt-get -s upgrade | grep -q "0 upgraded" ; then
true
else
DEBIAN_FRONTEND=noninteractive apt-get -y -q upgrade
fi
O primeiro apt-get -s
está lá para suprimir a saída e o e-mail inútil, caso não haja nada para atualizar.
Similar pergunta em askubuntu.