【发布时间】:2015-05-26 22:09:48
【问题描述】:
编辑:Bug in rubygems 2.4.4. (fixed in 2.4.5)
我在使用 Chef Client v12.2.1 附带的嵌入式 ruby 安装 gems 时遇到问题,使用 chef_gem 资源:
Mixlib::ShellOut::ShellCommandFailed
------------------------------------
chef_gem[zabbixapi] (generic_server_win::libzabbix-deps line 6) had an error: Mixlib::ShellOut::ShellCommand Failed: Expected process to exit with [0], but received '1'
---- Begin output of C:/opscode/chef/embedded/bin/gem install c:/chef/cache/zabbixapi-2.2.2.gem -q --no-rdoc --no-ri -v "2.2.2" ----
STDOUT:
STDERR: ERROR: While executing gem ... (Errno::EADDRNOTAVAIL)
The requested address is not valid in its context. - connect(2)
---- End output of C:/opscode/chef/embedded/bin/gem install c:/chef/cache/zabbixapi-2.2.2.gem -q --no-rdoc --no-ri -v "2.2.2" ----
Ran C:/opscode/chef/embedded/bin/gem install c:/chef/cache/zabbixapi-2.2.2.gem -q --no-rdoc --no-ri -v "2.2.2" returned 1
还有:
- 使用 --local 选项以管理员身份在命令行上手动运行命令时的结果相同
- 其他 gem 也会出现同样的错误。
- 我尝试运行它的服务器无法访问 Internet
- 我无法在新安装的测试机器(可以访问互联网)上重现该问题
- 使用的 ruby 版本为 2.0.0:ruby 2.0.0p451 (2014-02-24) [i386-mingw32]
这是我的厨师食谱:
cookbook_file "#{Chef::Config[:file_cache_path]}/zabbixapi-2.2.2.gem" do
source 'zabbixapi-2.2.2.gem'
end
chef_gem "zabbixapi" do
source "#{Chef::Config[:file_cache_path]}/zabbixapi-2.2.2.gem"
end
【问题讨论】:
-
gem 命令必须具有 Internet 访问权限才能下载您尝试安装的 gem 所需的依赖项(除非您使用本地存储库)。如果您确实无法访问互联网,则必须安装每个必备的 gem 或使用本地服务器。
-
有问题的 gem 仅依赖于已安装的 json gem。 (列在“宝石列表”输出中)
-
支持研究工作和问题更新:)
标签: ruby gem rubygems chef-infra chef-windows