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

标签 ruby dependencies vagrant chef-infra

今天我想使用 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 中遇到了这个问题。问题是 Chef 要求这些依赖项:

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

因此 gem 使用它能找到的最新版本的 ohai,最终成为新版本,打破了一切。

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

gem install ohai -v 7.2.0

那么它应该可以工作了!

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

关于使用 vagrant 时出现 Ruby gem 依赖错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29371516/

相关文章:

ruby-on-rails - 创建一个 ruby​​ 类,在引用时返回一个字符串

typescript - 无法使用 Typescript 项目引用构建 Vue.js 应用程序

java - 构建期间 Gradle NPE?

laravel - 如何使用 Homestead、Parallels 和 vagrant 设置 Laravel 开发环境

vagrant up - 服务器没有启动,因为 ssh 库问题

ruby - 只允许 Ruby 数组中的特定值之一

ruby-on-rails - ActiveRecord,按嵌套属性的值查找

c# - 使用 AppSettings.json 和 Startup.cs 将服务引用注入(inject) .NET

ruby-on-rails - 设置 Vagrant 来镜像一个 heroku 实例

ruby - 在 Hanami 模型中加入查询