Pacman opção para assumir "sim" a cada pergunta?


51

Ao instalar software em sistemas debian, podemos colocar algo como isto:

sudo apt-get install -y chromium-browser

dessa forma, a instalação ocorre automaticamente, sem pedir para confirmar a instalação [S / n]. Posso fazer o mesmo com pacman?

Respostas:


77

De man pacman:

--nfirfirme
Ignore toda e qualquer mensagem "Você tem certeza?". Não é uma boa ideia fazer isso, a menos que você queira executar o pacman a partir de um script.

Observe a qualificação sobre o uso com cuidado ...

O Arch é uma versão sem interrupções, o que significa que o pacman precisa, de tempos em tempos, gerenciar algumas atualizações bastante complexas. Nessas ocasiões, o pacman solicitará que você confirme suas escolhas - desconsiderar essas solicitações geralmente não será um problema significativo, mas em alguns casos, como na recente mudança de /libpara /usr/lib, a falta de atenção causará grandes rupturas. Este não é um hábito que você deseja cultivar.


Nunca executei pacman com o "--noconfirm" em cerca de 3 anos usando o Arch, por causa desse aviso. Quantas pessoas executam pacman a partir de um script? Quais são os grandes riscos? Eu tive que intervir 3 ou 4 vezes para consertar as coisas que o pacman se recusou a atualizar.
precisa

3
Presumo, dada a cultura de Arch, que o aviso existe para desencorajar a complacência e a noção equivocada de que automatizar as atualizações do pacman é uma boa idéia. Um monte de quebra pode ser colocado para baixo para as pessoas não ler a saída do pacman; --noconfirmagravaria que ...
jasonwryan

11
Eu tenho um script de "instalação" que usa --noconfirm. A idéia é poder usar um sistema com uma instalação limpa atualizada recentemente e torná-lo "utilizável" sem nenhuma interação do usuário.
StrongBad 19/10/12

3
Na verdade, --noconfirmnão assume yes, em vez disso, assume a resposta padrão, que é bastante frequente no. Exemplo: # pacman -Scc Cache directory: /var/cache/pacman/pkg/ :: Do you want to remove ALL files from cache? [y/N]Para o caso acima, yes|pacman -Sccassumeyes
Utgarda 26/09

11
Na verdade, pacman --noconfirmé necessário se você estiver usando um contêiner do Docker, caso contrário, ele apenas aguardará uma entrada e, portanto, desligará o contêiner com um erro.
Amin NAIRI 31/03

29

Embora a página de manual sobre o assunto não seja muito clara, a --noconfirmbandeira não assumirá "sim" em todas as respostas. Ele assume a resposta padrão, que pode ser "não" às vezes.

--nfirfirme
      Ignore toda e qualquer mensagem "Você tem certeza?". Não é uma boa ideia
      fazer isso, a menos que você queira executar o pacman a partir de um script

Para assumir "sim", você pode canalizar a saída do yescomando para pacman.

yes | sudo pacman -S firefox

Use yes | LC_ALL=en_US.UTF-8 pacman [...]para compatibilidade com sistemas cujo idioma não está definido como inglês. Caso contrário, as [Y/n]perguntas se tornam [J/n], por exemplo.
ComFreek

3
Também tenha cuidado com esta resposta, caso Pacman faça uma pergunta sem yresposta, por exemplo Enter a selection (default=all).
ComFreek

@ComFreek, em vez de alterar as variáveis ​​de ambiente passadas pacman, seria mais fácil e provavelmente mais seguro fazer yes J | sudo pacman -S firefoxisso nesse caso. yes Jfará com que yesa saída seja repetidamente a em Jvez de a y.
Drew Chapin

"e provavelmente mais seguro" Como assim? A substituição acima afeta apenas o ambiente do processo (árvore) gerado e termina com ele. Além disso, a chamada acima é exatamente a mesma para todos os locais.
kelvin

Além disso, e se alguém copiar / colar uma dessas linhas de comando, mas tiver um código de idioma no qual uma das opções tenha um significado oposto ou completamente diferente? Exemplo: J(ou Y) significa "não" ou "todos".
kelvin
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.