如何在未经确认的情况下更新所有 Chocolatey 应用程序?

How do I update all Chocolatey applications without confirmation?

我过去可以调用 cup all 并更新我的应用程序。现在,它要求 yes 以确保我要安装选定的包。有没有一种方法可以让所有内容自动更新,而无需为每次更新不断输入 yes

tl;dr - 是的,完全有可能。使用 cup all -y

现在还可以查看帮助菜单 - choco -hchoco install -h

更长的答案,出于安全原因,我们已经向其他包管理器靠拢了一些,默认情况下我们会停止并确认您是否接受状态更改。我总是在 release notes / changelog, which also end up in the nuspec file 中传达更改,因此我强烈建议人们至少扫描其中一个以查看任何标记为重大更改的内容。始终从当前版本扫描到要升级到的版本,以便捕获所有更改。

现在最重要的是 x.y.z 版本(在本例中为 0.9.9),一旦我们达到 v1,我们将完全符合 SemVer 并且重大更改将构成一个主要版本冲击(我们仍然是低于 v1 的 semver),因此您可以扫描 x 版本中的重大更改和主要新功能,.y 版本中的新兼容功能,以及 .z版本将仅包含当前版本的兼容修复程序。

0.9.9 引入了一个新编译的客户端,was/is 完全重写。 0.9.10 将具有与旧客户端完全相同的功能 - 请参阅 FeatureParity. Why the rewrite? For a more maintainable, faster client that can run on mono now, so you are not completely tied to Windows. We've started adding support for other install providers (like Scriptcs)。

你的问题relevant bits of the release notes

  • [安全]确认提示:出于安全原因,我们现在在大多数命令上更改系统状态之前停止确认。您可以传递 -y 来确认任何提示或在配置中设置一个值,该值将全局确认并表现得像旧版本的 Chocolatey(allowGlobalConfirmation,请参阅 choco feature -h 了解如何启用)。

正如 Rob 指出的那样,-y 将跳过给定命令的提示。

如果您完全不想被确认提示所困扰,您可以全局设置该选项。

以下启用 allowGlobalConfirmation,这将在没有确认提示的情况下安装或更新。

choco feature enable -n=allowGlobalConfirmation

如果您想重新打开提示,运行 禁用相同的命令:

choco feature disable -n=allowGlobalConfirmation

这对于无人参与的脚本很有用,不会影响提示的未来状态。

注意:语法最近发生了变化(2016 年 7 月),现在需要在 allowGlobalConfirmation 之前使用等号而不是破折号。感谢您的提醒,@dragon788。