繁体   English   中英

正确使用Chocolatey(包更新/版本管理)

[英]Proper usage of Chocolatey (package update / version management)

注意:这个问题适用于Chocolatey 0.9.8和bellow。 后来的版本完全从PowerShell脚本重写为C#应用程序,并且包管理的整个过程得到了很大改进。

我一直在使用Chocolatey 一开始我很兴奋,但过了一段时间后我不确定它是否可用。 我最关心正确的包更新方式。

例如,我使用Chocolatey安装了Atom编辑器 Atom的新版本经常发布,所以我已经多次更新了这个包。 然后我注意到我所有以前安装的Atom版本仍然存在于Chocolateylib目录中。 事实上, Chocolatey不会更新包装; 它只是安装了一个新版本,除了旧版本,如果您使用命令choco update <package>choco update all ,则无关紧要。 目前还没有办法使用Chocolatey卸载以前安装的软件包,除了最新的软件包。

因此,我想知道使用Chocolatey管理包版本的正确方法是什么 我应该只是手动删除旧版本的软件包,并希望在Chocolatey的软件包目录之外没有依赖项吗?

或者更确切地说呢?

choco uninstall <package>
choco install <package>

如果我没有使用Chocolatey安装一个软件包,但数十个软件包怎么办?

此外,每个版本的软件包都在单独的目录中会导致各种问题(例如thisthisthis )。

我认为这不适合实际使用。 或者也许我错过了什么。 其实我希望我错过了一些东西:)因为Windows上的软件管理多年来一直很痛苦。 一团糟。

我会说Chocolatey更像是一个依赖管理器 ,但它应该是一个包管理器 它宣传自己为“ apt-get for Windows”, apt-get是一个包管理器。 包管理器(如Chocolateyapt-getbrew )与依赖管理器(如npmbower )之间存在很大差异。 这两种方法中的每一种都有不同的用途。 谁需要同时使用不同版本的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甚至没有考虑旧版本。 它只关注最新版本。 它唯一的错误就是不删除旧文件夹(并首先在文件夹上使用版本)。

要更新程序包,请使用Chocolatey update命令。

这很简单:

chocolatey update <package>

要么

cup <package>

评论更新

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM