Chocolatey 如何知道哪些包已安装,哪些包未安装

Chocolatey 如何知道哪些包已安装,哪些包未安装

巧克力味是适用于 Windows 的软件包管理系统。首先,您需要下载并安装 Chocolatey,这是一款免费的开源软件。您告诉它您想要什么软件,然后(通常)回答一个或多个问题。然后 Chocolatey 会为您下载并静默安装该软件。

我试图更好地理解 Chocolatey 如何知道它已经安装了什么。这样我就可以理解中断“chocolatey 安装”操作是否会导致 Chocolatey 永远陷入困惑。

使用 Chocolatey 0.9.9.8,当我尝试连续两次安装包 (7zip) 时,第一次成功,第二次什么也没做,只是打印了一条警告消息。消息显示:

7zip v9.38 已安装。
使用 --force 重新安装、指定要安装的版本或尝试升级。

Chocolatey 安装了 0/1 个包。
请参阅日志了解详细信息 (C:\ProgramData\chocolatey\logs\chocolatey.log)。

我查看了 Chocolatey 源代码,试图找到答案。检查包是否已安装的方法调用似乎是这个。但我找不到 FindPackage 方法的源代码。

Chocolatey 如何知道它已经安装了哪些软件包?它是否在我的计算机上的某个地方保留一个中央数据库,以跟踪它已安装和未安装的内容?

答案1

它根据磁盘上的实际包进行跟踪。请注意,例如在默认安装位置中有一个 lib 文件%ChocolateyInstall%'C:\ProgramData\chocolatey\lib'

该文件夹中是软件包文件夹,每个文件夹中都有一个*.nupkg文件。每个*.nupkg文件代表一个已安装的软件包。

对于您正在寻找的地方,请注意以下几点 -

另外,GitHub 技巧让你不需要 webarchive 链接 - 一旦你找到了源代码位,点击y此处获取永久链接

相关内容