2

Windows 7にワンクリックインストーラーでruby 1.9.2をインストールしました。

これで、1.8.7 でのみ動作する gem ができました

そこで、Pik をインストールして、1.8.7 を動作させようとしています。

irb は正常に動作しますが、require は動作しません。

たとえば、gem list を実行すると、問題の gem がリストされます。irb で gem を要求すると、ロードするファイルがないと表示されます。

Pik を使用して 1.9.2 に戻すと、すべて問題ありません (つまり、gem がロードされます)。

私はpikの外側とpikの内側にgemをロードしようとしました。

1.8.7 で実行されているロード パスは次のとおりです。

....>ruby -ve "puts $LOAD_PATH.inspect"
ruby 1.8.7 (2011-06-30 patchlevel 352) [i386-mingw32]
["C:/Ruby187/lib/ruby/site_ruby/1.8", "C:/Ruby187/lib/ruby/site_ruby/1.8/i386-ms
vcrt", "C:/Ruby187/lib/ruby/site_ruby", "C:/Ruby187/lib/ruby/vendor_ruby/1.8", "
C:/Ruby187/lib/ruby/vendor_ruby/1.8/i386-msvcrt", "C:/Ruby187/lib/ruby/vendor_ru
by", "C:/Ruby187/lib/ruby/1.8", "C:/Ruby187/lib/ruby/1.8/i386-mingw32", "."]

パスに Ruby187/lib/ruby/gems/1.8 が表示されません...おそらくそれが問題ですか? もしそうなら、どうすれば修正できますか(ロードパスを変更する方法がわかりません)、pikが機能しない理由や修正するために何ができるかを誰かが知っていますか.

最後に、1.9.2 を削除して 1.8.7 をクリーン インストールする方法を知っている人はいますか?

助けてくれてありがとう!

4

1 に答える 1

1

RubyInstaller にはパッケージに RubyGems が含まれていますが、Ruby 1.8.x 自体は 1.9.1 や 1.9.2 のようにデフォルトで RubyGems を有効にしません。

require "rubygems"ロードしたいgemのいずれかに対してrequireを行う前に必要です。

スクリプトは両方のバージョンの Ruby で動作するため、次のようにすることができます。

require "rubygems" unless defined?(Gem)

が定義されていない場合にRubyGemsを有効にします(Ruby 1.9.2の下にあります)

それが役立つことを願っています。

于 2011-08-16T17:49:24.363 に答える