一段时间以来,我们一直在分别使用Chef和Chocolatey,最近开始一起使用它们来轻松安装一些Windows软件包。
例如:
// Since these id's contain letters as well, they need to be strings.
const data = [
{
_id: "5366e9049cfc825b32966852",
companies:[
"5ab20bb69cb2754e949a09dc",
"5ac5d53983d45353bc6a9c54",
"5ac62eeca5421e4cb9abf63e"
]
},
{
_id: "5b9251f8ae8db624755f4b90",
companies:[
"5b461c892bb9c81bd3ed4a25",
"5b5086196947782fbc873d28",
"5b76a6c79dc71a4a12564cc5"
]
}
];
const companies = data.reduce(( result, item ) => result.concat( item.companies ), []);
console.log( companies );
该食谱有效,但现在我们已经得到了这些错误,而没有进行任何其他更改:
include_recipe 'chocolatey::default'
chocolatey_package 'git.install' do
action :install
end
chocolatey_package 'nuget.commandline' do
action :install
end
chocolatey_package 'docker-compose' do
action :install
version '1.21.2'
end
chocolatey_package 'gitlab-runner' do
action :install
version '11.0.0'
end
请注意安装成功,然后失败。
最初是在* chocolatey_package[git.install] action install
- install version 2.18.0 of package git.install
* chocolatey_package[nuget.commandline] action install
- install version 4.8.1 of package nuget.commandline
* chocolatey_package[docker-compose] action install
- install version 1.21.2 of package docker-compose
* chocolatey_package[gitlab-runner] action install
* No candidate version available for gitlab-runner
================================================================================
Error executing action `install` on resource 'chocolatey_package[gitlab-runner]'
================================================================================
Chef::Exceptions::Package
-------------------------
No candidate version available for gitlab-runner
软件包中发生的,出于无奈,我将其更改为git
,此方法有效。但是现在它刚开始与git.install
一起发生。
有没有人看到这种类型的故障在一天而不是第二天起作用?我已经确认该软件包存在,并且可以使用gitlab-runner
手动将其下拉。
我的下一个故障排除步骤可能是挖掘该资源。我知道在Linux平台上进行软件包安装时可能会发生错误消息,因此错误描述可能会引起误解...即choco install
抛出异常或处理程序执行的操作过于笼统(无法使用.NET)条款)。
答案 0 :(得分:0)
这是我遇到过的最烦人的问题之一。 Chocolatey.org确实非常不可靠。但是,我可以在发生此错误后立即直接在命令行上进行安装,但是通过Chocolatey_package厨师资源,无论是否Chocolatey.org处于何种状态,它每次都会因令人恐惧的“没有可用的候选版本”而失败。希望厨师最终能一起行动。同时,这是一种对我有效的解决方法。
choco source add -n=local -s"[PATH]" -u=[USERNAME] -p=[PASSWORD]
然后转到Chocolatey.org,找到您的软件包,将其下载到该位置,然后重新运行您的食谱。这非常有效,因为您不再那么依赖外部资源,而且速度更快,但是请记住,在发布新软件包时,您很有可能需要使用最新软件包进行刷新。