吃豆子选项对每个问题都假设“是”?

Joh*_*mos 81 arch-linux pacman apt

在 debian 系统中安装软件时,我们可以这样写:

sudo apt-get install -y chromium-browser

这样安装会自动进行,无需确认安装 [Y/n]。我可以用吃豆子做同样的事情吗?

jas*_*yan 120

来自man pacman

--noconfirm
绕过所有“你确定吗?” 消息。除非您想从脚本运行 pacman,否则这样做不是一个好主意。

请注意有关谨慎使用它的资格...

Arch 是一个滚动版本,这意味着 pacman 必须不时地管理一些非常复杂的升级。在这些时候 pacman 会提示你确认你的选择——无视这些提示通常不是什么大问题,但在某些情况下,就像最近从/lib到 的转移一样/usr/lib,缺乏注意会导致严重的破坏。这不是你想要培养的习惯。

  • 实际上,`--noconfirm` 不假设`yes`,而是假设默认答案,通常是`no`。示例:```# pacman -Scc 缓存目录:/var/cache/pacman/pkg/ :: 是否要从缓存中删除所有文件?[y/N]``` 对于上述情况,`yes|pacman -Scc` 假定为 `yes` (12认同)
  • 实际上,如果您使用的是 Docker 容器,则需要 `pacman --noconfirm`,否则,它只会等待输入,从而关闭容器并出现错误。 (8认同)
  • 我认为,鉴于 Arch 的文化,警告是为了阻止自满和错误的观念,即自动化 pacman 更新是一个好主意。很多问题都可以归结为人们没有阅读 pacman 的输出;`--noconfirm` 会加剧这种情况...... (5认同)
  • 我有一个使用 --noconfirm 的“安装”脚本。这个想法是能够采用最近更新的全新安装的系统,并使其“可用”而无需任何用户交互。 (2认同)

Dre*_*pin 49

虽然有关此事的联机帮助页不是很清楚,但该--noconfirm标志不会对每个答案都假定“是”。它假定默认答案有时可能是“否”。

--noconfirm
      绕过所有“你确定吗?” 消息。
      除非您想从脚本运行 pacman,否则这样做不是一个好主意

要假设“是”,您可以将yes命令的输出通过管道传输到pacman.

yes | sudo pacman -S firefox
Run Code Online (Sandbox Code Playgroud)

  • 还要注意,如果 Pacman 曾经问过一个没有“y”答案的问题,例如“输入一个选择(默认值=全部)”,那么这个答案就会失败。 (7认同)
  • 使用`是| LC_ALL=en_US.UTF-8 pacman [...]` 用于与语言未设置为英语的系统兼容。否则,例如,“[Y/n]”问题会变成“[J/n]”。 (5认同)
  • “而且可能更安全” 怎么会这样?上面的覆盖仅影响产生并以它结束的进程(树)的环境。此外,上面的调用对于所有语言环境都完全相同。 (2认同)