【问题标题】:How to install Chef knife-ec2 plugin on Ubuntu 14.04.1?如何在 Ubuntu 14.04.1 上安装 Chef Knife-ec2 插件?
【发布时间】:2015-04-22 17:09:49
【问题描述】:

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

我已经让它在另一个运行完全相同的操作系统、chefkdk 和刀插件的 VM 上成功运行。我没有记录我采取的步骤,因为它看起来很简单。现在我正在拔头发试图重新设置它。

这一切都在虚拟机上,而且我有几个快照。因此,如果不是解决冲突问题,而是有人可以给我正确的步骤,告诉我如何安装刀 EC2 插件,那也一样好。

【问题讨论】:

  • 注意:我还刚刚开始学习 ubuntu、chef 和 ruby​​,所以我很难消除这些冲突。建议解决方案时,请尽可能记住。

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


【解决方案1】:

我遇到了同样的错误。这种算作解决冲突错误。我希望这是一个临时解决方案,而迷雾只是变得合规,或者其他什么。我的解决方法是显式安装雾 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 以防我有时间担心这个问题。

【讨论】:

  • 谢谢!这对我有用。尽管存在这样的冲突似乎很奇怪,但目前似乎没有其他任何问题被破坏。
猜你喜欢
  • 1970-01-01
  • 2023-04-06
  • 2015-06-27
  • 1970-01-01
  • 2014-03-09
  • 2015-03-18
  • 2017-05-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多