40

在查看可用的巧克力包装时,我遇到了一些显然有两个(或有时更多)包装的相同产品。乍一看是无法分辨的。

例如,有AutohotKey包,然后还有Autohotkey。安装包。

两种类型的包有什么区别?

4

2 回答 2

28

在这里查看 Chocolatey wiki 中的常见问题解答:

https://github.com/chocolatey/choco/wiki/ChocolateyFAQs#what-is-the-difference-between-packages-no-suffix-as-compared-to-install-portable

引用那篇文章:

tl;dr:几乎 100% 的时间,没有后缀的包(本例中为自动热键)将确保 *.install。没有后缀的包是为了可发现性和其他包的依赖。

Chocolatey 有虚拟包(即将到来)和元包的概念。虚拟包是在用作依赖项时代表其他包的包。元包是只为提供一组依赖项而存在的包。

一个没有后缀的包被有后缀的包包围,就是提供一个虚拟包。因此,对于 git、git.install 和 git.commandline(不推荐用于 .portable)——git 就是那个虚拟包(在虚拟包功能完成之前,它实际上只是一个元包)。这意味着其他包可以依赖它,并且您可以安装 git.install 或 git.portable 并且您将满足安装 git 的依赖关系。这使 Chocolatey 不会尝试安装已经满足包依赖要求的东西。

专门谈论 *.install 包后缀 - 这些包用于具有捆绑或下载并运行的本机安装程序的包。

注意:后缀 *.app 以前曾用于表示与 *.install 相同的含义。但是 *.app 后缀现在已被弃用,不应用于新包。

*.portable 包通常会在您的路径上的某个地方生成可执行文件,但不会安装到系统上(添加/删除程序)。以前,后缀 *.tool 和 *.commandline 用于指代相同类型的包。

注意:现在 *.tool 和 *.commandline 已被弃用,不应用于新包。

想要更多信息?请参阅http://ferventcoder.com/archive/2012/02/25/chocolatey---guidance-on-packaging-apps-with-both-an-install.aspx

于 2015-04-23T18:54:33.167 回答
0

最近建立了一个新环境,choco也对此感到好奇。Chocolatey 似乎创建了一个专门的文档站点并将常见问题解答移到那里,并将链接更新到:

https://docs.chocolatey.org/en-us/faqs#what-is-the-difference-between-packages-no-suffix-as-compared-to.install.portable

于 2021-03-07T14:15:26.027 回答