命令
choco list -lo
Run Code Online (Sandbox Code Playgroud)
列出已安装的软件包。但是如何确定 Chocolatey 应用程序的安装位置?到目前为止,我不得不四处寻找它们。
一些例子:
Program Files (x86)%ALLUSERSPROFILE%\chocolatey\bin and %ALLUSERSPROFILE%\chocolatey\lib\[Package Name]\tools%ALLUSERSPROFILE%\chocolatey\lib\[Package Name]\tools上面有没有标志choco list会告诉我他们去了哪里?ChocolateyGUI 似乎也没有这样做。
有点像 Debian 的:
dpkg-query
Run Code Online (Sandbox Code Playgroud)
或者 RedHat 的:
rpm -ql [package-name]
Run Code Online (Sandbox Code Playgroud)
或者 YUM 的 repoquery:
repoquery --list [package-name]
Run Code Online (Sandbox Code Playgroud)
家酿:
brew list [package-name]
Run Code Online (Sandbox Code Playgroud)
Gar*_*ark 32
目前,没有办法做你所要求的。
每个 Chocolatey 包都是独一无二的,因为它可以是 MSI 或 EXE 的包装器,也可以是将压缩档案简单地提取到已知位置,即 C:\tools,或者它可以是一个 PowerShell 模块提取到 PSModulePath,或者它可以是完全自定义的。
这是 Windows 生态系统的一个副作用,其中有多种方法可以做同样的事情。Chocolatey 试图通过提供一种机制来至少在一个地方找到您想要的所有包,从而为此带来某种秩序,但是 Chocolatey 能做的只有这么多。
如果您以完全不同的方式看待事物,则可以使用以下方法将安装参数传递给 Chocolatey 包:
https://github.com/chocolatey/chocolatey/wiki/CommandsInstall#installarguments-optional---v09813
理论上,这可以更改基于 MSI 或 EXE 的 Chocolatey 包的安装参数,以更改文件的安装位置。您可以在此处看到使用此方法的示例:
http://chocolatey.org/packages/VisualStudio2013Ultimate
但是,这种方法是有限的。不是每个人都像 Matt 一样花时间提及可能的安装参数,提取可能发送到 MSI 或 EXE 的安装参数是一个相当复杂的过程。
就 ChocolateyGUI 而言,作为该产品的当前维护者,我可以告诉您它在这方面没有任何聪明之处:-)。它只是 Chocolatey 提供的命令行工具的包装器,旨在让不喜欢使用命令行的人更容易使用。
小智 8
我发现了一些有用的东西
C:\ProgramData\chocolatey\logs\choco.summary.log
C:\ProgramData\chocolatey\logs\chocolatey.log
Run Code Online (Sandbox Code Playgroud)
当然,这些日志包含大量冗余(对于本例)信息。但至少可以通过观察它们来更好地理解巧克力的真正作用。
小智 8
这可能会丢失一些结果,但帮助我找到了一些包:
(Get-Content C:\ProgramData\chocolatey\logs\choco.summary.log) -match 'Software installed to'
Run Code Online (Sandbox Code Playgroud)
不幸的是,不是我所知道的。我相信安装目录是由包本身决定的。它没有在 .nuspec 文件中定义,我看不到它在 Chocolatey 源代码中明确定义的任何地方。
源代码:https : //github.com/chocolatey/chocolatey
如果 Chocolatey 为包生成了一个 shim,例如,yourprogram.exe您可以通过以下 Powershell 命令告诉可执行文件的路径:
$a="path to executable:"
(yourprogram --shimgen-noop | Select-String $a) -split $a | ForEach-Object Trim
Run Code Online (Sandbox Code Playgroud)
仅当 shim 是 .exe 文件时才有效。这是很常见的,尽管有些包会生成 .ps1、.cmd 甚至 .bat 文件。在这些罕见的情况下,此配方将不起作用。
| 归档时间: |
|
| 查看次数: |
36523 次 |
| 最近记录: |