Ответ 1
Это зависит от вашей версии Chocolatey, ее настроек и самих пакетов.
Чтобы начать, см. раздел "Инструменты против приложений и отличия Chocolatey" (https://github.com/chocolatey/chocolatey/wiki/ChocolateyFAQs на внизу).
Если пакет не использует собственный установщик (инструмент), это зависит от если автор пакета использовал концепцию bin_root, которая в будущем.
Например, SysInternals перейдет к
c:/sysinternals
прямо сейчас, если только у вас есть определенная переменная$env:chocolatey_bin_root
. Концепция в код изменится, как и сейчас, это требует, чтобы он был вложенной папке системного диска, и я не вижу, чтобы мы разрабатывали окончательный с этим ограничением.Если пакет еще не имеет этой концепции, всегда можно задать автора пакета, чтобы включить его.
Если пакет использует собственный установщик (приложение), можно использовать
installArgs
передать аргументы собственному установщику (https://github.com/chocolatey/chocolatey/wiki/CommandsInstall) и скажите директорию, в которую нужно установить приложение. Это требует вы должны знать, что вам нужно, чтобы перейти к родному установщику. Если ты хочешь ваши приложения в пользовательском каталоге, есть предположение, что вы уже являетесь продвинутым пользователем, поэтому ожидается, что вы знаете что передать установщик, если вы делаете тихую установку.
Немного перефразирован из: https://groups.google.com/forum/#!msg/chocolatey/uucAz8GxebA/HEPAKp69d90J
Кроме того,
УВЕДОМЛЕНИЕ. Начиная с версии 0.9.8.24, местоположение установки по умолчанию Chocolatey
C:\ProgramData\Chocolatey
Это уменьшает поверхность атаки на локальной установке шоколадного и ограничения, которые могут вносить изменения в каталог.
Источник: https://github.com/chocolatey/chocolatey/wiki/DefaultChocolateyInstallReasoning
И из личного опыта я могу подтвердить, что эта концепция - отличная линия защиты (при правильной настройке, использовании и понимании).
PS:
Как вы уже добавили к своему ответу, технически требование - %ProgramFiles%
и %ProgramFiles(x86)%
переменная среды (с, где это применимо).
Например, %ProgramFiles(x86)%
также может указывать на P:\Software\Programs\x86\
(вместо C:\Program Files (x86)\
).
Очевидно, существует много устаревшего программного обеспечения (теперь (повторно) упакованное), которое никогда не использовало раздел <vendor>
в имени пути.
Надеюсь, это поможет!