我最近设置了一台新机器,并安装/启用了Chocolatey。据我所记得,我能够基于软件包名称通过powershell调用软件包。例如,如果我想安装mongodb,我曾经键入choco install mongodb
-并能够通过在Powershell控制台中简单地键入mongo
来调用mongo客户端。有没有办法查看是否有东西绑定到特定的垫片上?还是有启用它的选项?
我不认为有一种方法可以将软件包与垫片匹配,但是您可以检查垫片所指向的可执行文件,以及有关它的常规信息以及运行垫片会发生的情况:
shimname.exe --shimgen-noop
我曾尝试编写一个命令来检查$env:ChocolateyInstall\bin
目录中的所有填充,但不能保证可执行文件中会出现填充。我也尝试过滤掉已知的Chocolatey可执行文件,但是某些包(例如putty
)将其实际可执行文件直接放到bin
文件夹中,并且不会像您期望的那样响应shim参数。
Install-BinFile
cmdlet,它看起来像Chocolatey根本无法跟踪垫片,因为它本身并没有这样做。我认为它使用相同的逻辑来在软件包卸载时跟踪自动生成的垫片,但是使用Install-BinFile
显式创建的任何垫片也需要在关联的Install-BinFile
脚本中调用Uninstall-BinFile
,否则垫片将不会在删除软件包卸载时间。
对于潜在的自动填充程序名称,[chocolateyUninstall.ps1
/$env:ChocolateyInstall\lib\packageName
/ chocolateyInstall.ps1
脚本的爬行,对于明确的填充程序,您将无法将填充程序与程序包进行匹配。