Pacman opzione di assumere "sì" per ogni domanda?


51

Quando installiamo software in sistemi debian possiamo mettere qualcosa del genere:

sudo apt-get install -y chromium-browser

in questo modo l'installazione avviene automaticamente, senza chiedere conferma dell'installazione [S / n]. Posso fare lo stesso con pacman?

Risposte:


77

Da man pacman:

--noconfirm
Ignora tutti i messaggi "Sei sicuro?". Non è una buona idea farlo a meno che tu non voglia eseguire pacman da uno script.

Nota la qualifica sull'uso di questo con cura ...

Arch è un rilascio progressivo, il che significa che Pacman deve, di volta in volta, gestire alcuni aggiornamenti piuttosto complessi. In questi momenti pacman ti chiederà di confermare le tue scelte: ignorare queste richieste in genere non sarà un problema significativo, ma in alcuni casi, come con il recente passaggio da /liba /usr/lib, una mancanza di attenzione causerà gravi rotture. Questa non è un'abitudine che vuoi coltivare.


Non ho mai eseguito pacman con "--noconfirm" in circa 3 anni di utilizzo di Arch, a causa di quell'avvertimento. Quante persone gestiscono pacman da una sceneggiatura? Quali sono i grandi rischi? Ho dovuto intervenire 3 o 4 volte per riparare cose che pacman ha rifiutato di aggiornare.
Bruce Ediger,

3
Presumo, data la cultura di Arch, che l'avvertimento è lì per scoraggiare il compiacimento e l'idea sbagliata che automatizzare gli aggiornamenti di pacman sia una buona idea. Un sacco di rottura può essere messo giù per le persone non leggono l'output di pacman; --noconfirm
esacerberebbe

1
Ho uno script "installa" che usa --noconfirm. L'idea è quella di essere in grado di prendere un sistema con un'installazione pulita recentemente aggiornata e renderlo "utilizzabile" senza alcuna interazione da parte dell'utente.
StrongBad,

3
In realtà, --noconfirmnon assume yes, invece presuppone la risposta predefinita, che è abbastanza spesso no. Esempio: # pacman -Scc Cache directory: /var/cache/pacman/pkg/ :: Do you want to remove ALL files from cache? [y/N]per il caso precedente, yes|pacman -Sccipotizzayes
Utgarda,

1
In realtà, pacman --noconfirmè necessario se si utilizza un contenitore Docker, altrimenti attenderà solo un input e quindi chiuderà il contenitore con un errore.
Amin NAIRI

29

Mentre la manpage sull'argomento non è molto chiara, la --noconfirmbandiera non assumerà "sì" su ogni risposta. Presuppone la risposta predefinita che a volte può essere "no".

--noconfirm
      Ignora tutti i messaggi "Sei sicuro?". Non è una buona idea
      farlo a meno che tu non voglia eseguire pacman da uno script

Per assumere "sì", è possibile reindirizzare l'output del yescomando pacman.

yes | sudo pacman -S firefox

Utilizzare yes | LC_ALL=en_US.UTF-8 pacman [...]per la compatibilità con sistemi la cui lingua non è impostata sull'inglese. Altrimenti le [Y/n]domande diventano [J/n], per esempio.
ComFreek,

3
Attenzione anche a questa risposta non riesce se Pacman fa una domanda senza yrisposta, ad es Enter a selection (default=all).
ComFreek,

@ComFreek, piuttosto che alterare le variabili di ambiente passate a pacman, sarebbe più facile, e probabilmente più sicuro da fare yes J | sudo pacman -S firefoxin quel caso. yes Jcauserà yesl'uscita ripetuta a Jinvece di a y.
Ha disegnato Chapin il

"e probabilmente più sicuro" Come mai? L'override sopra influisce solo sull'ambiente del processo (albero) generato e termina con esso. Inoltre, l'invocazione sopra è esattamente la stessa per tutti i locali.
Kelvin,

Inoltre, cosa succede se qualcuno copia / incolla una di queste righe di comando ma ha una localizzazione in cui una delle opzioni ha il significato opposto o completamente diverso? Esempio: J(o Y) che significa "no" o "tutto".
Kelvin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.