powershell - 根据包名在powershell中调用巧克力包
问题描述
我最近设置了一台新机器并安装/启用了巧克力。据我所知,我能够根据包名称通过 powershell 调用包。例如,如果我想安装 mongodb,我曾经键入- 并且只需在 powershell 控制台中choco install mongodb
键入即可调用 mongo 客户端。mongo
有没有办法查看某些东西是否绑定到特定的垫片?还是有启用它的选项?
解决方案
我认为没有办法将包与 shim 匹配,但您可以检查 shim 指向的可执行文件,以及有关它的一般信息以及运行 shim 会发生什么:
shimname.exe --shimgen-noop
我尝试制作一个命令来检查$env:ChocolateyInstall\bin
目录中的所有垫片,但不能保证那里的可执行文件会有垫片。我也尝试过滤掉已知的 Chocolatey 可执行文件,但是某些包(如putty
)将其真正的可执行文件直接放在bin
文件夹中,并且不会像您期望的那样响应 shim 参数。
查看Install-BinFile
cmdlet,Chocolatey 似乎根本没有提供跟踪 shim 的方法,因为它自己甚至不这样做。我认为它使用相同的逻辑在包卸载时跟踪自动生成的垫片,但是任何显式创建的垫片Install-BinFile
也需要Uninstall-BinFile
在相关chocolateyUninstall.ps1
脚本中调用,否则在卸载包时不会删除垫片。
如果没有为潜在的自动 shim 名称爬取$env:ChocolateyInstall\lib\packageName
目录,或者没有为显式 shim 爬取chocolateyInstall.ps1
/chocolateyUninstall.ps1
脚本,您将无法将 shim 与包匹配。
推荐阅读
- java - 为什么我在 JUNIT 测试中收到 StackOverflowError?
- r - 从 R 中的年、月和周数据中插入年-月-日
- google-chrome-extension - Chrome 扩展,XMLHttpRequest 内容安全策略错误
- c# - 无法对 directoryObject 类型的变量进行操作,MS Graph API 结果
- javascript - 谷歌映射 iframe 和被动侦听器
- java - 在 Java 上的控制台 Snake 游戏中吃食物时如何添加尾巴?
- c# - 按下按钮时在当前项目中创建 .cs 文件的 VSIX 扩展
- regex - 数学正则表达式快速路线
- python - 如何检查子目录是否不包含python中的某个文件?
- svg - Visual Paradigm 生成的 svg 在 inkscape 中的呈现方式与在浏览器中不同