我使用bundler来处理ruby gems依赖项。我需要gems使用bundler编程。
当我试图以编程方式调用knife时,它的依赖项是在Gemfile中指定的。我执行knife如下:

Chef::Knife.run ["-v"] #invoking knife

返回以下错误:
/var/lib/gems/2.0.0/gems/chef-11.6.2/lib/chef/knife/edit.rb:5:in `<class:Knife>': superclass mismatch for class Edit (TypeError)

我熟悉Ruby on Rails 3 : "superclass mismatch for class ..."以及发生这种情况的原因。但我所做的一切都与上述stackoverflow帖子中的解释不谋而合。
有人能解释一下这个问题并提出解决办法吗?

最佳答案

我认为这个Edit class造成了这个问题,而uninstalling刀本质宝石将解决您的问题。
尝试一次:

gem uninstall knife-essentials

08-06 01:49