Вызов шоколадного пакета в powershell на основе его имени пакета

Недавно я настроил новую машину и установил/включил шоколад. Насколько я помню, я мог вызвать пакет через powershell на основе имени пакета. Например, если я хотел установить mongodb, я набирал choco install mongodb и мог вызвать клиент mongo, просто набрав mongo в консоли powershell. Есть ли способ узнать, привязано ли что-то к определенной прокладке? или есть возможность включить?


person trexgris    schedule 21.01.2020    source источник


Ответы (1)


Я не думаю, что есть способ сопоставить пакеты с прокладками, но вы можете проверить исполняемый файл, на который указывает прокладка, а также общую информацию о нем и о том, что произойдет, если вы запустите прокладку:

shimname.exe --shimgen-noop

Я попытался создать команду для проверки всех прокладок в каталоге $env:ChocolateyInstall\bin, но нет гарантии, что исполняемые файлы там будут прокладками. Я также пытался отфильтровать известные исполняемые файлы Chocolatey, но некоторые пакеты (например, putty) помещают свои настоящие исполняемые файлы прямо в папку bin и не будут реагировать на параметры прокладки, как вы ожидаете.


Глядя на командлет Install-BinFile, не похоже, что Chocolatey предоставляет способ вообще отслеживать прокладки, поскольку он даже сам этого не делает. Я думаю, что он использует ту же логику для отслеживания автоматически сгенерированных прокладок во время удаления пакета, но любые прокладки, явно созданные с помощью Install-BinFile, также должны вызывать Uninstall-BinFile в соответствующем сценарии chocolateyUninstall.ps1, иначе прокладка не будет удалена во время удаления пакета.

Если не считать сканирования каталога $env:ChocolateyInstall\lib\packageName в поисках имен потенциальных автоматических прокладок или сценариев chocolateyInstall.ps1/chocolateyUninstall.ps1 для явных прокладок, вы не сможете сопоставить прокладку с пакетом.

person Bender the Greatest    schedule 21.01.2020