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