Команда
choco list -lo
перечисляет установленные пакеты. Но как определить, где устанавливается приложение Chocolatey? До сих пор мне приходилось их искать.
Некоторые примеры:
- NUnit идет в
Program Files (x86)
- WGET идет к
%ALLUSERSPROFILE%\chocolatey\bin and %ALLUSERSPROFILE%\chocolatey\lib\[Package Name]\tools
- ConsoleZ отправился в
%ALLUSERSPROFILE%\chocolatey\lib\[Package Name]\tools
Есть ли флаг, choco list
который скажет мне, куда они пошли? ChocolateyGUI, похоже, тоже этого не делает.
Что-то вроде Debian:
dpkg-query
Или RedHat:
rpm -ql [package-name]
Или запрос на репо YUM:
repoquery --list [package-name]
brew list [package-name]
решение1
В настоящее время нет возможности сделать то, о чем вы просите.
Каждый пакет Chocolatey уникален в том смысле, что он может быть оболочкой вокруг MSI или EXE, или это может быть простое извлечение сжатого архива в известное место, например C:\tools, или это может быть модуль PowerShell, который извлекает данные в PSModulePath, или это может быть что-то совершенно индивидуальное.
Это побочный эффект экосистемы Windows, где есть несколько способов сделать одно и то же. Chocolatey пытается навести порядок, предоставляя механизм, позволяющий хотя бы найти все нужные вам пакеты в одном месте, но Chocolatey может сделать не так уж много.
Если взглянуть на вещи совершенно иначе, то можно передать аргументы установки в пакет Chocolatey, используя следующее:
https://github.com/chocolatey/chocolatey/wiki/CommandsInstall#installarguments-optional---v09813
Это могло бы, в теории, изменить аргументы установки пакета Chocolatey на основе MSI или EXE, чтобы изменить место установки файлов. Вы можете увидеть пример использования этого подхода здесь:
http://chocolatey.org/packages/VisualStudio2013Ultimate
Однако этот подход ограничен. Не все, как Мэтт, тратят время на то, чтобы упомянуть возможные аргументы установки, которые возможны, и это довольно запутанный процесс извлечения аргументов установки, которые возможны для отправки в MSI или EXE.
Что касается ChocolateyGUI, то как текущий разработчик этого продукта я могу сказать, что в этой области он не делает ничего умного :-). Это просто оболочка вокруг инструментов командной строки, которые предоставляет Chocolatey, и ее цель — облегчить работу тем, кто не любит использовать командную строку.
решение2
Я нашел кое-что полезное в
C:\ProgramData\chocolatey\logs\choco.summary.log
C:\ProgramData\chocolatey\logs\chocolatey.log
Конечно, эти логи содержат много избыточной (для этого случая) информации. Но по крайней мере их можно просмотреть, чтобы лучше понять, что на самом деле делает chocolatey.
решение3
Вероятно, здесь отсутствуют некоторые результаты, но это помогло мне найти несколько пакетов:
(Get-Content C:\ProgramData\chocolatey\logs\choco.summary.log) -match 'Software installed to'
решение4
К сожалению, я об этом не знаю. Я считаю, что каталог установки определяется самим пакетом. Он не определен в файле .nuspec, и я не вижу нигде, чтобы он был явно определен в исходном коде Chocolatey.
Исходный код:https://github.com/chocolatey/chocolatey