Estou tentando escrever um script de atualização de sistema não interativo.
Pergunta:
se o seguinte funcionar bem:
yes | dpkg --configure -a
o seguinte também funcionará muito bem ?:
yes | apt-get install --fix-broken
Resposta
Você tem -y
ou --yes
ou --assume-yes
parâmetros em apt-get
.
Tente algo como
sudo apt-get install -y <package-name>
Detalhes:
O página do manual do apt-get (você também pode consultar a página do manual com o comando man apt-get
) menções:
-y, –yes, –assume-yes
Sim automático para prompts. Assuma “sim” como resposta a todos os prompts e execute de forma não interativa. Se uma situação indesejável, como mudar um pacote retido ou remover um pacote essencial, ocorrer, o apt-get será abortado. Item de configuração: APT :: Get :: Assume-Yes.
Ao contrário deste parâmetro, você também tem
–assume-no
Automático” não “para todos os prompts. Item de configuração: APT :: Get :: Assume-No.
Editar
Para o comentário de Vlastimil, tentei
sudo apt-get install --fix-broken --assume-yes
E funciona. O --fix-broken
parte do comando pode ser substituída por -f
e --assume-yes
por -y
ou --yes
por conveniência. Isso não instalará nenhum pacote perticular, mas “pode omitir qualquer pacote para permitir que o APT deduza uma solução provável”, conforme mencionado na página do manual .