OSX,10.9.2:
$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]
$ knife -v
Chef: 11.10.4
当我跑步时:
$ knife ec2 server list
我明白了:
FATAL: Cannot find sub command for: 'ec2 server list'
The ec2 commands were moved to plugins in Chef 0.10
You can install the plugin with `(sudo) gem install knife-ec2
我安装了gem:
sudo gem install knife-ec2
运行没有错误。并且gem列表显示它已安装:
$ sudo gem list|grep knife-ec2
knife-ec2 (0.8.0)
宝石似乎在这里正确安装:
ls /Library/Ruby/Gems/2.0.0/gems/knife-ec2-0.8.0/
...
/ usr / bin / knife本身运行正常。它很可能与刀寻找插件的地方有关,但该怎么办还不清楚。
答案 0 :(得分:8)
我安装了chefdk之后遇到了这个或类似的问题,因为我已经通过宝石安装了厨师/刀/刀-ec2(如果你想知道的话,试图让vagrant-berkshelf工作)。 / p>
我发现在安装chefdk时,嵌入式厨师红宝石被路径中的二进制文件使用,而不是系统红宝石,因此您必须将宝石安装到厨师嵌入的红宝石中。
在OSX上,我这样做了:
/opt/chefdk/embedded/bin/gem install knife-ec2
编辑:看起来有一个厨师命令已经这样做了:
chef gem install knife-ec2
答案 1 :(得分:3)
尝试运行gem install knife
时的输出是什么?使用gem
sudo
使用不同的路径
你可以用sudo运行刀:
sudo knife ec2 server list
或者以当前用户身份安装gem:
gem install knife-ec2
如果后者不起作用,请使用RVM:
\curl -sSL https://get.rvm.io | bash
rvm install 2.0.0p247
gem install knife-ec2
答案 2 :(得分:1)
您正在将东西安装到系统ruby中(这是不明智的)。在此实例中,您需要在sudo
命令之前使用knife
。
答案 3 :(得分:0)
是的,这很棘手...... 原因: 您的系统中有2个GEM二进制文件。一个是“rubygems in / bin / gem”,另一个是厨师“/ opt / chef / embedded / bin / gem”
Knife在厨师装置中使用了gem二进制文件。
解决方案: 所以你应该安装插件 / opt / chef / embedded / bin / gem install knife-ec2 / opt / chef / embedded / bin / gem install
享受:)...