2011-02-10 5 views
1

私はちょうど新しいサーバーを設定し、Twitterの宝石をインストールしたいが、Ubuntuの8.04 /ルビーの問題に1.8.6未定義のメソッド `end_with? ' 「ロードするようなファイル - のWin32API」をするために:文字列(NoMethodError)

を実行していますよ

"multi_jsonにはRubyGems = 1.3.6が必要です"と表示されていますが、 "gem update --system"を実行すると明らかにRubyGems 1.5が試され、Ruby 1.8.6では実行できず、次のエラーで失敗します:

undefined method `end_with?' for "no such file to load -- Win32API":String (NoMethodError) 

from ./lib/rubygems/config_file.rb:55 
from ./lib/rubygems/custom_require.rb:29:in 'gem_original_require' 
from ./lib/rubygems/custom_require.rb:29:in 'require' 

... 

おかげ

スティーブ

+0

あなたはあなたの質問のためのより多くのコンテキストを提供する必要があります。今のところ立っているように、答えは簡単です:問題は、古いバージョンのRubyプラットフォームでTwitterライブラリの新しいバージョンを使用していることです。 Ergoでは、新しいバージョンのRubyプラットフォームまたは古いバージョンのTwitterライブラリを使用してください。ブーム、問題解決。やさしい。しかし、おそらく理由があります*なぜあなたがそれらのバージョンを使用している*。 –

+0

本当にありがとうございます。文脈の欠如を申し訳ありません。私が抱えていたサーバーイメージには、Ruby 1.8.6が付属していて、RVMでうまく動かなかったし、古いバージョンのTwitterの宝石は、より新しいAPI機能私はRVMをRuby 1.8.7(1.9.2ではエンコーディングの処理方法が異なる)にアップグレードしましたが、これが問題を解決しました。ありがとう。 – wastedhours

答えて

3

アップグレードのドキュメントは、あなたが宝石をダウングレードするには、次のコマンドを使用することができることを言及しています。私はちょうどあなたがまた、古い宝石あなたの自己をインストールしようとする可能性が受信したコメントを踏まえて

gem update --system 1.3.7

:それはおそらく同様に、特定のバージョンへのアップグレードのために働くことを言えば十分。 (ルート/ sudoを使用して)例えば

cd /usr/src && wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz

tar -xvf rubygems-1.3.7.tgz

ruby setup.rb

+1

この機能は、1.8.6をサポートしていないRubyGems 1.5に文字どおり追加されました。 –

+0

提案してくれてありがとう - 結局私はシステムをRVMで動かして問題を解決しましたが、他の人がRubyのバージョンを変更できなくてもこれが理想的かもしれないと確信しています。 – wastedhours

関連する問題