120

When installing software in debian systems we can put something like this:

sudo apt-get install -y chromium-browser

that way the installation occurs automatically, whitout asking to confirm installation [Y/n]. Can i do the same with pacman?

2 Answers 2

158

From man pacman:

--noconfirm
Bypass any and all “Are you sure?” messages. It’s not a good idea to do this unless you want to run pacman from a script.

Note the qualification about using this with care...

Arch is a rolling release, which means pacman has to, from time to time, manage some quite complex upgrades. At these times pacman will prompt you to confirm your choices—disregarding these prompts will generally not be a significant issue, but in some cases, as with the recent move from /lib to /usr/lib , a lack of attention will cause major breakage. This is a not a habit you want to cultivate.

12
  • I've never run pacman with the "--noconfirm" in about 3 years of using Arch, because of that warning. How many people run pacman from a script? What are the big risks? I have had to intervene 3 or 4 times to fix things that pacman has refused to upgrade.
    – user732
    Commented Oct 19, 2012 at 3:18
  • 5
    I assume, given Arch's culture, that the warning is there to discourage complacency and the misguided notion that automating pacman updates is a good idea. A lot of breakage can be put down to people not reading pacman's output; --noconfirm would exacerbate that...
    – jasonwryan
    Commented Oct 19, 2012 at 3:31
  • 2
    I have an "install" script that uses --noconfirm. The idea is to be able to take a system with a recently updated clean install and make it "usable" without any user interaction.
    – StrongBad
    Commented Oct 19, 2012 at 9:42
  • 26
    Actually, --noconfirm doesn't assume yes, instead it assumes the default answer, which is quite often no. Example: # pacman -Scc Cache directory: /var/cache/pacman/pkg/ :: Do you want to remove ALL files from cache? [y/N] For the case above, yes|pacman -Scc assumes yes
    – Utgarda
    Commented Sep 26, 2017 at 10:30
  • 16
    Actually, pacman --noconfirm is required if you are using a Docker container, otherwise, it will just wait for an input, and thus shutting down the container with an error.
    – Amin NAIRI
    Commented Mar 31, 2019 at 19:12
66

While the manpage on the matter is not very clear, the --noconfirm flag will not assume "yes" on every answer. It assumes the default answer which can be "no" sometimes.

--noconfirm
      Bypass any and all “Are you sure?” messages. It’s not a good idea
      to do this unless you want to run pacman from a script

To assume "yes", you could pipe the output of the yes command to pacman.

yes | sudo pacman -S firefox
8
  • 8
    Use yes | LC_ALL=en_US.UTF-8 pacman [...] for compatibility with systems whose language is not set to English. Otherwise the [Y/n] questions become [J/n], for example.
    – ComFreek
    Commented Jul 20, 2018 at 6:48
  • 11
    Also beware this answer fails if Pacman ever asks a question without a y answer, e.g. Enter a selection (default=all).
    – ComFreek
    Commented Jul 20, 2018 at 6:58
  • @ComFreek, rather than altering the environment variables passed to pacman, it would be easier, and probably safer to just to do yes J | sudo pacman -S firefox in that case. yes J will cause yes to repeatidly output a J instead of a y. Commented Jan 12, 2019 at 16:20
  • 3
    "and probably safer" How so? The override above only affects the environment of the process (tree) spawned and ends with it. Furthermore, the invocation above is exactly the same for all locales.
    – kelvin
    Commented Sep 16, 2019 at 17:03
  • Also, what if someone copy/pastes one such command line but has a locale in which one of the options has the opposite or a completely different meaning? Example: J (or Y) meaning "no" or "all".
    – kelvin
    Commented Sep 16, 2019 at 17:13

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .