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?

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.


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

À 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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.