吃豆子选择对每个问题都回答“是”?


51

在Debian系统中安装软件时,我们可以输入以下内容:

sudo apt-get install -y chromium-browser

这样,安装会自动进行,然后询问是否确认安装[是/否]。我可以对吃豆人做同样的事情吗?

Answers:


77

来自man pacman

--noconfirm
跳过任何和所有“确定吗?”消息。除非您要从脚本运行pacman,否则执行此操作不是一个好主意。

请注意谨慎使用此软件的资格...

Arch是滚动发布的版本,这意味着pacman必须不时地管理一些非常复杂的升级。在这些时候吃豆子会提示您确认您的选择,无视这些提示通常不会是一个显著的问题,但在某些情况下,从近期的举动/lib/usr/lib,缺乏关注会造成重大破坏。这不是您要养成的习惯。


由于该警告,我在使用Arch的3年中从未使用过“ --noconfirm”运行pacman。有多少人通过脚本运行pacman?有哪些大风险?我不得不进行3到4次干预才能修复pacman拒绝升级的问题。
布鲁斯·埃迪格

3
考虑到Arch的文化,我认为警告是为了阻止自满,而误导观点认为自动化pacman更新是个好主意。一个很多破损的可以放下来的人不读Pacman的输出; --noconfirm会加剧这种情况……
jasonwryan

1
我有一个使用--noconfirm的“安装”脚本。这个想法是要使系统具有最近更新的全新安装,并使其在没有任何用户交互的情况下“可用”。
StrongBad 2012年

这个想法是从脚本中安装软件而无需任何用户交互,因此这是完美的。谢谢!
JohannRamos 2012年

3
实际上,--noconfirm不假设yes,而是假设默认答案,该答案很常见no。示例:# pacman -Scc Cache directory: /var/cache/pacman/pkg/ :: Do you want to remove ALL files from cache? [y/N]对于上述情况,yes|pacman -Scc假设yes
Utgarda

29

尽管关于此事的手册页不是很清楚,但是--noconfirm标记不会在每个答案上都表示“是”。它假定默认答案有时可能为“否”。

--noconfirm
      跳过任何和所有“确定吗?”消息。
      除非您要通过脚本运行pacman,否则这样做不是一个好主意

假设为“是”,您可以将yes命令的输出传递给pacman

yes | sudo pacman -S firefox

使用yes | LC_ALL=en_US.UTF-8 pacman [...]与它的语言不是设置为英语系统的兼容性。否则,例如,[Y/n]问题变为[J/n]
ComFreek

3
还请注意,如果Pacman曾经提出没有y答案的问题,例如,该答案就会失败Enter a selection (default=all)
ComFreek

@ComFreek,而不是更改传递给的环境变量pacman,这样做会更容易,而且可能更安全yes J | sudo pacman -S firefoxyes J将导致yes重复输出a J而不是a y
德鲁·查平

“也许更安全”怎么办?上面的替代仅影响生成的进程(树)的环境并以此结束。此外,上述调用对于所有语言环境都是完全相同的。
开尔文

另外,如果有人复制/粘贴一个这样的命令行,但是在某个选项的含义相反或完全不同的语言环境下该怎么办?示例:(JY)表示“否”或“全部”。
开尔文
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.