如何在 Ubuntu 14.04.1 上安装 Chef knife-ec2 插件?

How to install Chef knife-ec2 plugin on Ubuntu 14.04.1?

我正在尝试在 Ubuntu Desktop 14.04.1 x64bit 上安装 Chef knife-ec2 插件。 Chefdk 0.4.0 安装成功,我可以毫无问题地使用 knife 命令。

我可以使用以下命令安装 knife-ec2 插件而不会出现任何错误: /opt/chef/embedded/bin/gem install knife-ec2

但是,安装后似乎与 fog gem 有冲突。尝试 运行 任何 knife 命令时出现以下错误:

/opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/specification.rb:2104:in `raise_if_conflicts': Unable to activate knife-ec2-0.10.0, because fog-1.27.0 conflicts with fog (~> 1.23.0) (Gem::ConflictError)
from /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/specification.rb:1282:in `activate'
from /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems.rb:198:in `rescue in try_activate'
from /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems.rb:195:in `try_activate'
from /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:126:in `rescue in require'
from /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:39:in `require'
from /home/umar/.chefdk/gem/ruby/2.1.0/gems/knife-ec2-0.10.0/lib/chef/knife/ec2_server_list.rb:20:in `<top (required)>'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-12.0.3/lib/chef/knife/core/subcommand_loader.rb:35:in `load'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-12.0.3/lib/chef/knife/core/subcommand_loader.rb:35:in `block in load_commands'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-12.0.3/lib/chef/knife/core/subcommand_loader.rb:35:in `each'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-12.0.3/lib/chef/knife/core/subcommand_loader.rb:35:in `load_commands'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-12.0.3/lib/chef/knife.rb:126:in `load_commands'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-12.0.3/lib/chef/knife.rb:207:in `run'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-12.0.3/lib/chef/application/knife.rb:139:in `run'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-12.0.3/bin/knife:25:in `<top (required)>'
from /opt/chefdk/embedded/bin/knife:23:in `load'
from /opt/chefdk/embedded/bin/knife:23:in `<main>'

我的 Path 变量,如果有什么不同的话,如下: /home/ubuntuuser/.chefdk/gem/ruby/2.1.0/bin:/opt/chefdk/bin:/opt/chefdk/embedded/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

我已经在另一台 VM 运行上使用完全相同的 OS、chefkdk 和 knife 插件成功运行。我没有记录我采取的步骤,因为它看起来非常简单。现在我正在拔头发试图重新设置它。

这一切都在 VM 上进行,我在此过程中有几个快照。因此,如果不是解决冲突问题,而是有人可以告诉我如何安装 knife-ec2 插件的正确步骤,那也一样好。

我遇到了同样的错误。这种算作解决冲突错误。我希望这是一个临时解决方案,迷雾只是进入合规性,或者其他什么。我的解决方法是显式安装 fog 1.23.0 并卸载 1.27.0。

chef gem install fog -v '1.23.0'
chef gem uninstall fog -v '1.27.0'

从技术上讲,我必须 sudo 才能卸载。一个更好奇的人可能会奇怪它的不对称性,而我有点怀疑我做了一些比我想做的更全球化的事情。但我最高兴的是让这个东西工作。有一个 changelog for fog 以防我有空担心那个。