Estou escrevendo um script de shell para instalar todos os meus aplicativos necessários no meu PC Ubuntu de uma só vez (enquanto posso dar um passeio ou fazer outra coisa). Para a maioria dos aplicativos, adicionar -y
ao final da apt-get install
instrução funcionou bem para evitar a necessidade de qualquer envolvimento do usuário. Meu script é mais ou menos assim:
#!/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 eu não precise mais me preocupar com Do you want to continue? [Y/n]
ou Press [ENTER] to continue or ctrl-c to cancel adding it
, o problema está com wireshark
, que requer uma resposta a um prompt interativo conforme mostrado abaixo:
Como posso evitar esta intervenção obrigatória?
Responder1
Configurar odebconfbase de dados:
echo "wireshark-common wireshark-common/install-setuid boolean true" | sudo debconf-set-selections
Então, instaleWireshark:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install wireshark
Você também pode querer suprimir a saída deapt-get. Nesse caso:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install wireshark > /dev/null
Responder2
O sistema apt/dpkg tem a capacidade de fornecer instalações não assistidas ou não interativas.
Isso envolve definir a DEBIAN_FRONTEND
variável noninteractive
e usar -y
o sinalizador. Por exemplo:
export DEBIAN_FRONTEND=noninteractive
apt-get -y install [packagename]
Se você receber erros, talvez seja necessário definir a q
opção para convencer mais fortemente dpkg
que você está de fato fazendo uma instalação não interativa: DEBIAN_FRONTEND=noninteractive apt-get -yq install [packagename]
.
Em alguns casos, pode ser mais fácil seguir as instruções de alguns dos pacotes que você instala posteriormente no mesmo processo de script/shell; nesse caso, você desejaria cancelar a exportação da DEBIAN_FRONTEND
variável:
unset DEBIAN_FRONTEND
Para pré-definir as opções de configuração é útil ter debconf-utils
instalado, o que disponibilizará o comando debconf-get-selections
:
sudo apt-get install debconf-utils