如何仅在已安装(从未安装)的情况下升级 Chocolatey 包?

如何仅在已安装(从未安装)的情况下升级 Chocolatey 包?

我想升级一个特定的软件包,但前提是它没有安装。我运行一个更新脚本,使我的所有电脑保持最新状态。cup all并且choco upgrade all非常适合此目的,但不能处理在用户 appdata 下本地安装的应用程序,如 f.lux。所以我这样做是为了遍历不同的用户并安装那些执行用户空间安装的应用程序:

$orgUserProfile=$Env:USERPROFILE
$orgLocalAppData=$Env:LOCALAPPDATA
$Env:USERPROFILE="C:\users\Alex"
$Env:LOCALAPPDATA="${Env:USERPROFILE}\AppData\Local"
# Installed to c:\Users\Alex\AppData\Local\SourceTree 
choco upgrade sourcetree
choco upgrade f.lux
$Env:USERPROFILE="C:\users\Lisa"
$Env:LOCALAPPDATA="${Env:USERPROFILE}\AppData\Local"
# I'm not sure updates will work for lisa, not sure I want to force it, it seems choco is not multi-user
choco upgrade f.lux
$Env:USERPROFILE=$orgUserProfile
$Env:LOCALAPPDATA=$orgLocalAppData

cup all

但是在我的某些电脑上还没有安装 sourcetree 和 f.lux 而且我也不想让我的升级脚本安装它们。

有没有一种简单的方法可以让 chocolatey 仅在已安装时才升级?这样我就不必手动解析列表了

附言:

这就像相反的问题

这是 choco 升级文档

答案1

目前尚不存在,但请关注https://github.com/chocolatey/choco/issues/1646- 如果在计划版本中发布,它将成为 v0.10.12 的一部分。

相关内容