Ruby gem 使用vagrant时出现依赖错误

Ruby gem dependency error when using vagrant

今天我想使用 vagrant 和 chef 启动我的虚拟 Ubuntu 14.04 服务器。就像在每个优秀的开发者故事中一样,它在前一天运行良好,所以我的假设是它会再次出现。然而这并不是现实给我的。

==> default: stdin: is not a tty
==> default: ERROR:  While executing gem ... (Gem::DependencyError)
==> default:     Unable to resolve dependencies: ohai requires mime-types (~> 2.0); rest-client requires mime-types (~> 1.16)

它以前没有这样做过,我对它可能是什么感到困惑。我已经检查了 VM 的互联网连接,它是正常的。

99.999% 的 Vagrant 和 Chef 脚本是由其他人制作的,我必须承认我对 Chef 的了解,尤其是 Ruby 略微有限。我没有更改脚本中的任何内容。唯一发生的事情是我的机器在一夜之间吞噬了如此多的内存,以至于无法继续工作。所以只好重装机器了

我用 chef 10.28.0 遇到了这个问题。问题是厨师要求这些依赖项:

ohai >= 0.6.0
rest-client < 1.7.0, >= 1.0.4

所以 gem 使用它能找到的最新版本的 ohai,它最终是新的,打破了一切。

您可以通过删除 ohai 然后安装旧版本来修复它,如下所示:

gem install ohai -v 7.2.0

那么应该可以了!

如果您再次碰到类似的问题,rubygems.org 是一个很好的地方,可以找出需要的依赖项。