如何从巧克力简单服务器中删除包?

How do I delete a package from chocolatey simple server?

如何从 chocolatey simple server 中删除包? 或者撤消错误的 choco push?

我正在尝试推送现有软件包的修复版本,但收到 406 错误“不可接受”

我可以完全访问服务器,但我是 chocolatey 的新手,所以我不确定在这里做什么。

就 Chocolatey Packages 而言,一旦将软件包版本推送到存储库,它就应该是不可变的,这意味着它不会更改。如果您修改包版本的内容,您最终可能会遇到 A 拥有 1.2.3 版本而 B 拥有 1.2.3 版本的情况,但它们实际上是不同的版本。为此,理想的解决方案是修改包版本以指示包装发生了变化。在 Chocolatey 社区存储库的上下文中,我们建议使用 here

中记录的包修复符号

If you need to fix an approved package for some reason, you can use the fourth version element (aka segment) for a package fix notation. There are two recommended methods of package fix version notation:

  • Date (Year/Month/Day) - Some folks use year month day package fix notation (yyyyMMdd as in 20120627 seen as 1.2.0.20120627)
  • Sequential - Not recommended - Some folks use sequential numbering (0, then 1, etc as in 0 for no fix, 1 for first fix and so on seen as 1.2.0.0 and 1.2.0.1).

话虽如此,如果您确实需要从 Simple.Server 中删除包,请转到 AppData 文件夹(默认情况下位于此处 C:\tools\chocolatey.server\App_Data\Packages),然后删除相关包。 注意:每个包文件夹都包含其中的包版本。只删除要替换的那个。完成后,您应该能够再次推送新的软件包版本。

请先阅读此处的第二个答案 - 它很好地解释了您可能会遇到的版本问题。

但如果您仍然希望删除包(可能是不小心创建了错误的 ID 或错误的版本)- 可以使用例如 nuget 工具。

命令行语法如下所示:

nuget delete <package id> <package version> -s https://<server url>/chocolatey -ApiKey <your API key>