Responda automaticamente "sim" quando utilizar o apt-get install
Existe alguma forma de fazer com que o apt-get install
responda “sim” ao “Quer continuar [y/N]?
Existe alguma forma de fazer com que o apt-get install
responda “sim” ao “Quer continuar [y/N]?
através da página apt-get man :
apt-get -y install [packagename]
O problema com:
apt-get --yes install $something
é que solicitará uma confirmação manual se a chave pública do proprietário da assinatura do pacote não estiver no porta-chaves, ou em algumas outras condições. para ter a certeza que não pede uma confirmação basta fazer isto:
apt-get --yes --force-yes install $something
Se quiser ter estas definições permanentes, crie um ficheiro em /etc/apt/apt.conf.d/, como /etc/apt/apt.conf.d/90forceyes com o seguinte conteúdo:
APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";
Note que, se também quiser ir automaticamente pelas respostas por defeito quando aparece uma mensagem interactiva, pode usar DEBIAN_FRONTEND=noninteractive
Instalação única:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install [packagename]
Por exemplo Todas as actualizações:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install postfix
Pode configurar melhores opções com -o Dpkg::Options::="--force-confdef"
e -o Dpkg::Options::="--force-confold"
.
Exemplos:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y update
apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"
Exemplos de prompt interactivo:
Leitura interessante: Realizar uma instalação desacompanhada de um pacote Debian
APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";
Isto deve ser pelo menos em /etc/apt/apt.conf
e comentado. Preocupa-me que o Ubuntu esteja a tomar a táctica da Microsoft de pedir sempre permissão.
“Tem a certeza?”, claro que tenho a certeza, não sou um macaco treinado a escrever simplesmente no teclado, indo clicar feliz.
Ao lado a porta vai perguntar: “Tem a certeza que quer ir lá para fora? ” O forno vai perguntar, “Tem a certeza que quer cozinhar?” O automóvel vai perguntar, “Tem a certeza que quer travar?” O extintor vai perguntar, “Tem a certeza que quer apagar o fogo?” Lamento Dave, não posso deixar que o faça. A HAL9000 podia usar uma contracção mas os dados não podiam, ou não podiam.
A partir do apt-get HOWTO
Utilize o interruptor -y
:apt-get -y install packagename
apt-get -y update
apt-get -y install [package]
geralmente as opções do manual devem funcionar bem
apt-get -y --force-yes install package
se não for bem sucedido pode tentar usar o comando yes
.
yes | apt-get -y --force-yes install package
utilizei isto com o meu script de provisionamento de conchas vagabundas
PS: no caso de querer não-interactivo mas com a indicação geral de não, pode tentar isto:
yes no | apt-get install package
Estava à procura de uma forma de seleccionar um não-defaultor num script, especificamente quando instalava wireshark, e acabei por utilizar o tmux para interagir com uma shell, como se segue:
# Start a detached root session
sudo tmux new-session -d
# Send the command
sudo tmux send-keys "DEBIAN_FRONTEND=readline apt-get -qq install wireshark-common; exit" enter
# Wait for the tmux session to get to the interactive stage
sleep 5
# Answer the question
sudo tmux send-keys "yes" enter
# Now attach to the session so we wait for command completion
sudo tmux attach
Se você quer sempre o -y argumento eu aconselharia adicionar a linha
alias apt-get='apt-get -y' #Automatic -y argument on apt-get commands
no seu .bashrc. Isto, como o comentário explica, adicionará automaticamente o argumento -y a todos os seus comandos apt-get e, portanto, aprova todos os downloads.
NOTE: Isto permanecerá válido até que reverta o seu .bashrc e reinicie a shell.