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

时间:2015-02-20 21:51:37

标签: ruby ubuntu amazon-ec2 chef ubuntu-14.04

我正在尝试在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>'

My 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

我已经在另一台运行完全相同的操作系统,chefkdk和刀插件的VM上成功运行。我没有记录我采取的步骤,因为它看起来非常简单。现在我把我的头发拉出来试图再次设置它。

这一切都在VM上,我一路上有几个快照。因此,如果不是解决冲突问题,有人可以给我正确的步骤,如何安装刀-ec2插头,这将是一样好。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的错误。这种情况可以解决冲突错误。我希望这是一个临时的解决方案,雾只会达到合规,或者其他什么。我的解决方法是显式安装雾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,以防万一我担心这件事。