我正在尝试在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插头,这将是一样好。
答案 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,以防万一我担心这件事。