Назовите шоколадный пакет в powershell, основываясь на его названии - PullRequest
0 голосов
/ 22 января 2020

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

1 Ответ

1 голос
/ 22 января 2020

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

shimname.exe --shimgen-noop

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


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

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

...