[英]Proper usage of Chocolatey (package update / version management)
注意:这个问题适用于Chocolatey 0.9.8和bellow。 后来的版本完全从PowerShell脚本重写为C#应用程序,并且包管理的整个过程得到了很大改进。
我一直在使用Chocolatey 。 一开始我很兴奋,但过了一段时间后我不确定它是否可用。 我最关心正确的包更新方式。
例如,我使用Chocolatey安装了Atom编辑器 。 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等?
它也在这里和这里进行了讨论,但在一年中没有任何变化。 它似乎应该在用C#而不是PowerShell编写的新客户端中解决 ,但它尚未发布(应该在2014年底之前发布)。 在那之前,我没有看到Chocolatey有任何附加价值。
更新:在choco 0.9.9+(C#编译版本)中不再是这种情况。
你是对的。 随着PowerShell版本的更新,Chocolatey文件夹可能会变得非常疯狂。 FWIW,PowerShell版的Chocolatey是一个长期坚持的实验。 自从第一年结束以来,我一直在谈论重写它。 同意你所看到的是丑陋的。 请放心,这不是新版本的工作原理。 现在有一些软件包可以安装多个版本(Ruby和Python),但它们很少。
Chocolatey的早期设计在某种程度上依赖于NuGet.exe,NuGet.exe与包管理没有NuGet.Core.dll所具有的所有相同功能(虽然它在写入时我提交了一些非常钝的错误。 C#版本的choco)。
我很高兴发布新版本,但功能奇偶校验需要首先出现。 它将在发布之前或同时被FOSS。 它是支持专业/业务扩展的版本。 我无法使用当前的PowerShell版本尝试这样做。 ;)
现在,您可以手动跳转到lib文件夹并删除所有旧文件夹。 在大多数情况下,Chocolatey甚至没有考虑旧版本。 它只关注最新版本。 它唯一的错误就是不删除旧文件夹(并首先在文件夹上使用版本)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.