Automatizando a instalação do apt-get com --assume-yes


68

Estou tentando escrever um script bash para instalar uma lista de software. Estou usando --assume-yespara passar as instruções.

De alguma forma, esta linha a seguir não funciona:

sudo apt-get install python-software-properties --assume-yes

Se eu tentar apt-getsem --assume-yesele funciona, mas o prompt me pede para:

please [Enter] to continue or ctrl+c to cancel adding it

Como adiciono Entercomo comando ao executar, em apt-get installvez de usar --assume-yes?


please [Enter] to continue or ctrl+c to cancel adding itaparece apenas se você estiver tentando adicionar um PPA.
Avinash Raj

Respostas:


89

Seu problema é que a opção deve estar antes dos pacotes, não depois, esta é a sintaxe correta:

apt-get <options> command package=version/release

Portanto, para que funcione, deve ser:

sudo apt-get --assume-yes install python-software-properties

O apt-get é perdoador ao misturar comando e opções, mas para errar do lado seguro, você deve sempre usar as opções antes do comando e nunca colocar opções ou comandos após o nome do pacote.


51

Adicione o -ysinalizador ao apt-get install <package-name>comando como abaixo, você não receberá nenhum aviso ao instalar pacotes.

sudo apt-get install -y <package-name>

De apt-get --help

-y  Assume Yes to all queries and do not prompt

Existe uma diferença entre --assume-yese -y?
22817 Peter Mortensen

3
@ PeterMortensen eles fazem a mesma coisa. Na página de manual:-y, --yes, --assume-yes Automatic yes to prompts
davejagoda

11
Observe que isso pode não ser suficiente e você também pode precisar adicionar -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"seus comandos. Consulte raphaelhertzog.com/2010/09/21/… para obter detalhes.
TTimo 10/10

@TTimo Wow! 6 dias depois que você postou esse comentário, eu chego e acho que é exatamente a resposta que eu precisava !! Se eu pudesse votar mais o seu comentário, eu o faria!
Crimbo

Sinta-se livre para editar a resposta com opções adicionais.
Avinash Raj

1

Para outra maneira silenciosa e eficaz da seguinte maneira:

sudo DEBIAN_FRONTEND=noninteractive apt-get install -qq python-software-properties < /dev/null > /dev/null
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.