1

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

1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .