chocolatey从哪里找到要下载的包裹?例如,如果我正在安装VirtualBox,那么它从哪里找到要下载的最新软件包,是否有可能下载过时的版本?
答案 0 :(得分:2)
Chocolatey使用您提供的来源来确定包裹的位置。如果您未提供源(或源列表),它将使用默认源,您可以通过运行choco source list
来查看。您可以添加或删除源(例如社区包存储库,也称为https://chocolatey.org/api/v2)。
每个源都可以具有优先级,该优先级定义Chocolatey搜索源以查找包的顺序。如果在较高优先级的源上找到包,则如果在另一个较低优先级源上有较新版本,则使用 甚至 该包版本。
Chocolatey中的软件包的术语与软件略有不同。
有关更多术语,请查看https://chocolatey.org/docs/getting-started#terminology
让我们以VirtualBox包为例来开始使用...
您很可能会发现自己没有配置任何其他来源(根据您的问题),这意味着您可能只拥有用于包源的默认社区包存储库。
看看这里:
https://chocolatey.org/packages/virtualbox#files
这将显示VirtualBox的Chocolatey包的内容。如果您仔细阅读了chocolateyInstall.ps1文件,您将看到从此处下载此包的二进制文件的确切位置:
url ='http://download.virtualbox.org/virtualbox/5.1.12/VirtualBox-5.1.12-112440-Win.exe'
url64bit ='http://download.virtualbox.org/virtualbox/5.1.12/VirtualBox-5.1.12-112440-Win.exe' checksum ='0cbdc245122fab090625bb3ec49f21f68c9bbad7d69e05e4a42b1a6ad1968b54' checksum64 ='0cbdc245122fab090625bb3ec49f21f68c9bbad7d69e05e4a42b1a6ad1968b54'
您可以查看每个Chocolatey包的files部分,找出安装文件的来源。假设您尚未通过Chocolatey功能启用全局接受程序包安装,您实际上也可以在安装时查看安装脚本。即,当您choco install virtualbox
时,系统会向您提示3个选项,yes
,no
和print
。在这种情况下,print
将显示安装脚本,您可以看到将要下载/安装到您的计算机上的内容。
上述唯一不同的是,您正在安装的软件包是我们所称的embedded
软件包(由于它们托管内部软件包而不是组织使用,因此更为典型受公共社区存储库这样的发行权限制。在嵌入式情况下,安装二进制文件已包含在chocolatey包中,因此不需要下载其他文件。使用嵌入式软件包时,我建议您查看应该包含在社区存储库中的Chocolatey软件包中的VERIFICATION.txt,以查看有关嵌入式二进制文件来源的说明,以及验证内容是什么的机制他们应该是。
关于你的其他问题:
是否有可能下载过时的版本?
对于VirtualBox,这种可能性极小。如果您点击Chocolatey.org上的包页面上的Package Source链接,您将看到您被带到此location。该软件包是Core Team Packages Repository的一部分。此存储库正在使用AU Chocolatey自动包更新程序模块。因此,对于新软件版本,定期检查此存储库中的包(目前每6小时一次),如果有,则会自动将其推送到Chocolatey.org。此存储库中的软件包由一组志愿者(包括我自己)维护,因此很有可能将软件包保持在最新状态。
...然而
这对于Chocolatey.org的社区包存储库中存在的所有包都不一样。社区存储库是一项社区工作,有近4500个软件包,我相信您可以理解某些软件包可能不是最新的。这些应根据具体情况进行评估,以确保符合您的要求。
我要说的最后一件事是,如果最新的软件包是您的核心问题,那么您始终可以选择不使用社区存储库。由于这是一天结束时的社区Feed,因此组织的内部/生产用量不是recommended。相反,您可能希望在自己的环境中内部提取这些包。这可以通过manually或利用Chocolatey中的business选项来完成。