Você pode usar o comando timeout
(instalado pelo pacote com o mesmo nome) para executar um comando e eliminá-lo se demorar mais do que N segundos. Eu teria cuidado sobre quando usá-lo embora. Matar o apt-get durante uma instalação de pacotes pode atrapalhar as coisas, então sugiro apenas executar a parte de download com o tempo limite. Algo parecido com esta função bash:
upgrade() {
local retry=5 count=0
# retry at most $retry times, waiting 1 minute between each try
while true; do
# Tell apt-get to only download packages for upgrade, and send
# signal 15 (SIGTERM) if it takes more than 10 minutes
if timeout -15 600 apt-get --assume-yes --download-only upgrade; then
break
fi
if (( count++ == retry )); then
printf 'Upgrade failed\n' >&2
return 1
fi
sleep 60
done
# At this point there should be no more packages to download, so
# install them.
apt-get --assume-yes upgrade
}
Veja Como faço para executar um comando e abortar (tempo limite) após N segundos? para mais.