Недавно я настроил новую машину и установил/включил шоколад. Насколько я помню, я мог вызвать пакет через powershell на основе имени пакета. Например, если я хотел установить mongodb, я набирал choco install mongodb
и мог вызвать клиент mongo, просто набрав mongo
в консоли powershell. Есть ли способ узнать, привязано ли что-то к определенной прокладке? или есть возможность включить?
Вызов шоколадного пакета в powershell на основе его имени пакета
Ответы (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
для явных прокладок, вы не сможете сопоставить прокладку с пакетом.