注意:此问题适用于 Chocolatey 0.9.8 及以下版本。后来的版本完全从 PowerShell 脚本重写为 C# 应用程序,并且包管理的整个过程得到了很大改进。
我已经使用Chocolatey一段时间了。一开始我很兴奋,但过了一段时间我不确定它是否可以使用。我最关心包更新的正确方式。
例如,我使用Chocolatey安装了Atom编辑器。Atom的新版本发布非常频繁,所以我已经多次更新这个包。然后我注意到我之前安装的所有Atom版本仍然存在于Chocolatey的目录中。Chocolatey实际上并没有更新包。它只是安装旧版本之外的新版本,使用命令或. 目前也没有办法使用Chocolatey卸载以前安装的包,除了最新的包。lib
choco update <package>
choco update all
因此,我想知道使用Chocolatey管理包版本的正确方法是什么。我是否应该手动删除旧版本的包并希望Chocolatey的包目录之外没有依赖项?
或者更确切地说是这样做?
choco uninstall <package>
choco install <package>
如果我没有使用Chocolatey安装一个包,而是安装了数十个包怎么办?
此外,每个版本的包都位于单独的目录中这一事实会导致各种问题(例如this、this或this)。
我认为这不适合实际使用。或者,也许我错过了一些东西。实际上,我希望我遗漏了一些东西 :) 因为 Windows 上的软件管理多年来一直很痛苦。一团糟。
我会说Chocolatey更像是一个依赖管理器,但它应该是一个包管理器。它标榜自己为“ apt-get
for Windows”并且apt-get
是一个包管理器。包管理器(如Chocolatey或)和依赖管理器(如apt-get
or )之间存在很大差异。这两种方法中的每一种都适用于不同的目的。谁需要同时使用不同版本的 Git、Atom、VLC 媒体播放器、Chrome 等?brew
npm
bower
例如,这里和这里也讨论了它,但一年中没有任何变化。似乎应该在用 C# 而不是 PowerShell 编写的新客户端中解决它,但它还没有发布(应该在 2014 年底之前发布)。在那之前,我看不到Chocolatey的任何附加值。