Есть ли способ вывести список пакетов Chocolatey с указанием их установочного каталога?

Есть ли способ вывести список пакетов Chocolatey с указанием их установочного каталога?

Команда

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

Связанный контент