Option Pacman d'assumer «oui» à chaque question?

51

Lors de l’installation de logiciels dans les systèmes Debian, nous pouvons mettre quelque chose comme ceci:

sudo apt-get install -y chromium-browser

De cette façon, l'installation se fait automatiquement, sans demander de confirmer l'installation [O / n]. Puis-je faire la même chose avec pacman?

JohannRamos
la source

Réponses:

77

De man pacman:

--noconfirm Ignore
tous les messages “Êtes-vous sûr?”. Ce n'est pas une bonne idée de le faire, sauf si vous voulez exécuter pacman à partir d'un script.

Notez la qualification sur l'utilisation de ceci avec soin ...

Arch est une version mobile, ce qui signifie que pacman doit, de temps à autre, gérer des mises à niveau assez complexes. À ces moments pacman vous demandera de confirmer votre choix sans tenir compte de ces invites-ne sera généralement pas un problème important, mais dans certains cas, comme le mouvement récent /libà /usr/libun manque d'attention provoque une rupture majeure. Ce n'est pas une habitude que vous voulez cultiver.

jasonwryan
la source
En raison de cet avertissement, je n'ai jamais utilisé pacman avec "--noconfirm" depuis environ trois ans d'utilisation d'Arch. Combien de personnes exécutent pacman à partir d'un script? Quels sont les gros risques? J'ai dû intervenir 3 ou 4 fois pour réparer des problèmes que pacman a refusé de mettre à niveau.
Bruce Ediger
3
Je suppose, compte tenu de la culture d'Arch, que l'avertissement est là pour décourager la complaisance et la notion erronée selon laquelle l'automatisation des mises à jour de pacman est une bonne idée. Un lot peut être mis de rupture vers le bas pour les gens ne lisent pas la sortie de pacman; --noconfirmexacerberait cela ...
jasonwryan
1
J'ai un script "install" qui utilise --noconfirm. L'idée est de pouvoir utiliser un système avec une nouvelle installation récemment mise à jour et de le rendre "utilisable" sans aucune interaction de l'utilisateur.
StrongBad
3
En fait, --noconfirmne suppose pas yes, mais assume la réponse par défaut, ce qui est assez souvent no. Exemple: dans # pacman -Scc Cache directory: /var/cache/pacman/pkg/ :: Do you want to remove ALL files from cache? [y/N]le cas ci-dessus, yes|pacman -Sccsupposeyes
Utgarda le
1
En fait, cela pacman --noconfirmest nécessaire si vous utilisez un conteneur Docker, sinon, il attendra simplement une entrée et, par conséquent, fermera le conteneur avec une erreur.
Amin NAIRI
29

Alors que la page de manuel sur la question est pas très claire, le --noconfirmdrapeau présumez pas « oui » à chaque réponse. Il assume la réponse par défaut qui peut être "non" parfois.

--noconfirm Ignore
      tous les messages “Êtes-vous sûr?”. Ce n'est pas une bonne idée
      de le faire, sauf si vous voulez exécuter pacman à partir d'un script.

Pour assumer "oui", vous pouvez diriger la sortie de la yescommande vers pacman.

yes | sudo pacman -S firefox
Drew Chapin
la source
À utiliser yes | LC_ALL=en_US.UTF-8 pacman [...]pour la compatibilité avec les systèmes dont la langue n'est pas définie en anglais. Sinon, les [Y/n]questions deviennent [J/n], par exemple.
ComFreek
3
Méfiez-vous également de cette réponse qui échoue si Pacman pose jamais une question sans yréponse, par exemple Enter a selection (default=all).
ComFreek
@ ComFreek, plutôt que de modifier les variables d'environnement transmises pacman, il serait plus facile et probablement plus sûr de le faire yes J | sudo pacman -S firefoxdans ce cas. yes Jprovoquera la yessortie répétée de a Jau lieu de a y.
Drew Chapin
"et probablement plus sûr" Comment ça? La substitution ci-dessus n'affecte que l'environnement du processus (arbre) créé et se termine par celui-ci. De plus, l'appel ci-dessus est exactement le même pour tous les paramètres régionaux.
Kelvin
De plus, que se passe-t-il si une personne copie / colle une de ces lignes de commande mais a une locale dans laquelle une des options a le sens opposé ou une signification complètement différente? Exemple: J(ou Y) signifiant "non" ou "tout".
Kelvin