0

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

>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:最初 * 在 Selection:0 上,后来我将其更改为 2。

现在ruby1.9.3在哪里?即使我安装了 ruby​​1.9.3,为什么还要使用其他版本?有人知道是什么原因造成的吗?

谢谢。

4

3 回答 3

2

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

gem env 说什么?

本质上,更新 ruby​​ 的替代品是不够的,但你也必须为 gem 做这件事

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

一旦 gem env 报告了正确的 ruby​​ 版本,那么你就可以开始了!

于 2013-11-28T14:56:58.733 回答
0

该软件包称为 1.9.1,因为那是 ABI 版本。

Ruby 使用两种并行版本控制方案:“Ruby 库兼容性版本”(此包为 1.9.1),类似于库 SONAME,以及“Ruby 版本”(此包为 1.9.3)。Debian 中的 Ruby 包是使用 Ruby 库兼容版本命名的,这有时会让不密切关注 Ruby 开发的用户感到困惑。这个包依赖于 ruby​​1.9.1 包,并提供从 1.9.3 可执行文件和手册页到 1.9.1 对应的兼容性符号链接。

于 2013-08-28T08:49:33.007 回答
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。

于 2013-10-04T18:08:50.633 回答