Como escolher uma resposta para o prompt interativo durante a instalação a partir de um script de shell

1

Eu estou escrevendo um script de shell para instalar todos os meus aplicativos necessários no meu PC Ubuntu em um único tiro (enquanto eu posso dar um passeio ou fazer outra coisa). Para a maioria dos aplicativos, adicionar -y ao final da instrução apt-get install funcionou bem para evitar a necessidade de qualquer envolvimento do usuário. Meu script é parecido com isto:

#!/bin/bash
add-apt-repository ppa:webupd8team/sublime-text-3 -y
apt-get update -y
apt-get upgrade -y
apt-get install synaptic -y
apt-get install wireshark -y

Embora não precise mais se preocupar com Do you want to continue? [Y/n] ou Press [ENTER] to continue or ctrl-c to cancel adding it , o problema é com wireshark , que requer uma resposta a um prompt interativo, conforme mostrado abaixo:

Como posso evitar essa intervenção obrigatória?

    
por skrowten_hermit 29.05.2017 / 11:17

2 respostas

3

Você só precisa definir a seleção do debconf.

sudo DEBIAN_FRONTEND=noninteractive apt-get -y install wireshark
echo "wireshark-common wireshark-common/install-setuid boolean true" | sudo debconf-set-selections
sudo DEBIAN_FRONTEND=noninteractive dpkg-reconfigure wireshark-common
    
por 25.12.2017 / 20:25
2

O sistema apt / dpkg tem a capacidade de fornecer instalações não atendidas ou não interativas.

Isso envolve definir a variável DEBIAN_FRONTEND como noninteractive e usar -y flag. Por exemplo:

export DEBIAN_FRONTEND=noninteractive
apt-get -y install [packagename]

Se você receber erros, talvez seja necessário definir a opção q para convencer mais strongmente o dpkg . Na verdade, você está fazendo uma instalação não interativa: DEBIAN_FRONTEND=noninteractive apt-get -yq install [packagename] .

Em alguns casos, pode ser mais fácil seguir os prompts para alguns dos pacotes que você instala mais tarde nesse mesmo processo de script / shell; nesse caso, você desejaria desexportar a variável DEBIAN_FRONTEND :

unset DEBIAN_FRONTEND

Para o pré-ajuste das opções de configuração, é útil ter o debconf-utils instalado, o qual utilizará o comando debconf-get-selections :

sudo apt-get install debconf-utils

Recursos que você pode achar úteis

por 30.05.2017 / 00:00