Как обновить пакет Chocolatey ТОЛЬКО если он установлен (никогда не устанавливается)?

Я хочу обновить определенный пакет, но только если он не установлен. Я запускаю скрипт обновления, который сохраняет up2date всех моих компьютеров. 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, и я не хочу, чтобы мой скрипт обновления устанавливал их.

Есть ли простой способ сделать шоколадное обновление, только если оно уже установлено? Поэтому мне не нужно анализировать список вручную

PS:

Вот как противоположный вопрос

Вот документация по обновлению choco

1 ответ

Решение

Это не существует в настоящее время, но следуйте https://github.com/chocolatey/choco/issues/1646 - если это выпустит в запланированной версии, это будет частью v0.10.12.

Другие вопросы по тегам