gssapi需要Ruby版本> = 1.9.1。在宝石安装上

时间:2013-08-28 08:44:52

标签: ruby gem knife

我正在尝试在配置了chef-client的Ubuntu 12.04上使用gem install安装knife-cloudstack插件,并且标题中出现错误。

>gem install knife-cloudstack
ERROR: Error installing knife-cloudstack:
       gssapi requires Ruby version >= 1.9.1

所以我尝试安装apt-get install ruby1.9.3,但仍然是同样的错误。

此外,ruby的版本显示为1.9.3

  ruby --version       ruby 1.9.3p0(2011-10-30修订版33570)[i686-linux]

为了更加困惑,当我运行sudo update-alternatives --config ruby时,它显示输出为:

There are 2 choices for the alternative ruby (providing /usr/bin/ruby).

     Selection    Path                Priority   Status
   ------------------------------------------------------------
     0            /usr/bin/ruby1.8     50        auto mode
     1            /usr/bin/ruby1.8     50        manual mode
   * 2            /usr/bin/ruby1.9.1   10        manual mode

   Press enter to keep the current choice[*], or type selection number:

PS:最初*在选择中:0,我后来改为2。

现在ruby1.9.3在哪里?即使我安装了ruby1.9.3,为什么还要使用其他版本?有谁知道是什么导致了这个问题?

感谢。

3 个答案:

答案 0 :(得分:2)

我在尝试安装刀架空间时遇到了同样的问题。问题源于@xdazz在评论中所说的内容

  

gem env说什么?

基本上,仅仅更新ruby的替代品还不够,但你必须为gem做这件事

sudo update-alternatives --config ruby
sudo update-alternatives --config gem

一旦gem env报告了正确版本的ruby,那么你很高兴去!

答案 1 :(得分:0)

该包名为1.9.1,因为这是ABI版本。

  

Ruby使用两种并行版本控制方案:`Ruby库   兼容版本'(此程序包为1.9.1),类似于a   库SONAME和'Ruby版本'(此软件包为1.9.3)。红宝石   Debian中的包使用Ruby库兼容性命名   版本,对于不遵循Ruby的用户来说有时会让人感到困惑   发展密切。这个包取决于ruby1.9.1包,   并提供1.9.3可执行文件和的兼容性符号链接   手册页到他们的1.9.1同行。

答案 2 :(得分:0)

删除其余版本:

apt-get purge ruby1.8
apt-get purge ruby

现在检查版本可用

~# update-alternatives --config ruby

替代红宝石有1种选择(提供/usr/bin/ruby)。

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /usr/bin/ruby1.9.1   10        auto mode
* 1            /usr/bin/ruby1.9.1   10        manual mode

现在你可以安装knife-cloudstack。