0

knife-cloudstackシェフクライアントが構成されたUbuntu 12.04でgem installを使用してプラグインをインストールしようとしていますが、タイトルで述べたようにエラーが発生しました。

>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はどこに?ruby1.9.3 をインストールしたのに、なぜ他のバージョンを使用するのですか?問題の原因を知っている人はいますか?

ありがとう。

4

3 に答える 3

2

knife-rackspace をインストールしようとしたときに、この同じ問題に遭遇しました。この問題は、@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

ABI バージョンであるため、パッケージは 1.9.1 と呼ばれます。

Ruby は、ライブラリ SONAME に似た「Ruby ライブラリ互換バージョン」(このパッケージでは 1.9.1) と「Ruby バージョン」(このパッケージでは 1.9.3) という 2 つの並行バージョン管理スキームを使用します。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 に答える