Como instalar pacotes com o APT sem interação do usuário?

7

Eu tenho um script que baixa e substitui os cabeçalhos do kernel no squeeze da Debian.

function fixHeaders(){
    #Replace the kernel headers from OVH with standard kernel headers...
    aptitude -y install linux-image-2.6.32-5-amd64  
    sed s/'GRUB_DEFAULT=0'/'GRUB_DEFAULT=1'/g
    update-grub
    echo "Rebooting the machine. Run this script again after reboot and choose option 2."
    sleep 1
    reboot  
}

O problema que estou tendo é que, depois que o aptitude baixa o pacote, ele lança o script em um gui de texto e faz várias perguntas ao usuário. Existe alguma maneira de pular isso ou enviar tab / enter nos horários apropriados para selecionar "OK" para todas as respostas?

    
por 에이바 13.02.2013 / 17:49

3 respostas

7

Com base no comentário de Daniel t, consegui fazer isso com DEBIAN_FRONTEND=noninteractive

DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get install -y -q --force-yes linux-image-2.6.32-5-amd64 
    
por 13.02.2013 / 18:45
4

Tenha em atenção que esta resposta que cito não eliminará todos os diálogos, continuará a apresentar o que o APT / DPKG considera crítico . Talvez seja melhor experimentar a segunda opção + usando o frontend readline para debconf e preparar um arquivo de resposta.

Citação de uma site-irmã :

Isso deve fazer o que você pediu; perguntando as questões de configuração depois:

$ DEBIAN_PRIORITY=critical
$ export DEBIAN_PRIORITY
$ apt-get upgrade
# Wait a long time.   Should be almost entirely noninteractive.
$ dpkg-reconfigure --default-priority=medium --unseen-only

Como alternativa, você pode tentar fazer todas as perguntas de configuração antes:

$ apt-get clean
$ cat >> /etc/apt/apt.conf <<EOF
// Pre-configure all packages before
// they are installed.
DPkg::Pre-Install-Pkgs {
    "dpkg-preconfigure --apt --priority=low";
};
EOF
$ apt-get upgrade
    
por 13.02.2013 / 18:18
0

Você pode enviar o que quiser com a ferramenta expect , já que você pode identificar os "tempos apropriados" (porque a entrada não muda).

    
por 13.02.2013 / 18:19