Respostas:
através da página de manual do apt-get :
apt-get -y install [packagename]
O problema com:
apt-get --yes install $something
é que ele solicitará uma confirmação manual se a chave pública do proprietário da assinatura do pacote não estiver no chaveiro ou em algumas outras condições. para ter certeza de que não pede confirmação, faça o seguinte:
apt-get --yes --force-yes install $something
Se você quiser ter essas configurações permanentes, crie um arquivo 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";
-y
estavam ficando chatos. (Além disso, é uma resposta mais completa.)
--force-yes
: como esta resposta a um tópico relacionadodebian-devel
sugere, --force-yes
pode tornar o sistema inutilizável. (Eu não estou downvoting porque a resposta realmente aborda o problema como afirma o OP, mas eu gostaria de acrescentar um aviso vermelho grande para a resposta de qualquer maneira.)
Observe que, se você também desejar obter automaticamente as respostas padrão quando um prompt interativo aparecer, poderá usar DEBIAN_FRONTEND=noninteractive
Instalação única:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install [packagename]
Por exemplo:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install postfix
Todas as atualizações:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y update
Você pode configurar opções mais refinadas com -o Dpkg::Options::="--force-confdef"
e -o Dpkg::Options::="--force-confold"
.
Exemplos:
apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"
ou
apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade
Exemplo de prompt interativo:
Leitura interessante: Execute uma instalação autônoma de um pacote Debian
-y
, ainda recebi avisos perguntando se eu queria reiniciar os serviços. Eu precisava disso para eliminar completamente todos os prompts.
APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";
Isso deve pelo menos /etc/apt/apt.conf
aparecer e comentar. Eu me preocupo que o Ubuntu esteja assumindo o rumo da Microsoft de sempre pedir permissão.
"Você tem certeza?", É claro que tenho certeza, não sou um macaco treinado simplesmente digitando no teclado, clicando feliz.
Em seguida, a porta perguntará: "Tem certeza de que deseja sair?"
O forno perguntará: "Tem certeza de que deseja cozinhar?"
O automóvel perguntará: "Tem certeza de que deseja aplicar freios?"
O extintor de incêndio perguntará: "Tem certeza de que deseja apagar o fogo?"
Sinto muito, Dave, não posso deixar você fazer isso.
O HAL9000 poderia usar uma contração, mas os Dados não puderam ou não puderam.
Use o -y
interruptor:
apt-get -y install packagename
apt-get -y update
apt-get -y install [package]
update
precisa de permissão?
apt-get update
comando requer permissões de raiz porque atualiza as listas de pacotes locais (índices), que são arquivos de sistema pertencentes à raiz.
geralmente as opções do manual devem funcionar bem
apt-get -y --force-yes install package
se não der certo, você pode tentar usar o yes
comando
yes | apt-get -y --force-yes install package
usei isso com meu script de provisionamento de shell vagrant
PS: caso você queira não interativo, mas com o geralmente afirmativo não, tente o seguinte:
yes no | apt-get install package
Se você sempre quiser o argumento -y, recomendo adicionar a linha
alias apt-get='apt-get -y' #Automatic -y argument on apt-get commands
no seu .bashrc. Isso, como o comentário explica, adicionará automaticamente o argumento -y a todos os seus comandos apt-get e, portanto, aprova todos os downloads.
NOTA: Isso permanecerá verdadeiro até você reverter seu .bashrc e reiniciar o shell.
Eu estava procurando uma maneira de selecionar um não padrão em um script, especificamente ao instalar o wireshark, e acabei usando o tmux para interagir com um shell, da seguinte maneira:
# 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