CygwinでFastriを実行できません:初期化された定数宝石::バージョン(nameerror)
質問
WindowsでCygwinで実行されているEmacsにFastri(http://eigenclass.org/hiki/fastri)をセットアップしようとしています。 Rubyのインストールは、RubyのWindowsバージョンではなく、Cygwinからのものでもあります。ダウンロード、タルボールの開梱、および実行setup.rbを実行した後、QRIまたはFRIを実行しようとすると、次のエラーメッセージが表示されます。
[/cygdrive/g]$qri
/usr/lib/ruby/1.8/rdoc/ri/ri_paths.rb:63: uninitialized constant Gem::Version (NameError)
from /usr/lib/ruby/1.8/rdoc/ri/ri_paths.rb:59:in `each'
from /usr/lib/ruby/1.8/rdoc/ri/ri_paths.rb:59
from /usr/lib/ruby/site_ruby/1.8/fastri/util.rb:38:in `require'
from /usr/lib/ruby/site_ruby/1.8/fastri/util.rb:38
from /usr/bin/qri:6:in `require'
from /usr/bin/qri:6
私のルビーバージョンと宝石環境:
[/cygdrive/g]$ruby --version
ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin]
[/cygdrive/g]$gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.4
- RUBY VERSION: 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin]
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /usr/bin/ruby.exe
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-cygwin
- GEM PATHS:
- /usr/lib/ruby/gems/1.8
- /home/rrajagop/.gem/ruby/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://gems.rubyforge.org/
ri_paths.rbを見て、Gem ::バージョンをファイルにどのように含めるべきかを把握しましたが、理解することはできませんでした。両方を追加してみました require 'gem/version'
と require 'version'
ri_paths.rbで、しかし喜びはありません。私は得ます 'require': no such file to load -- version (LoadError)
解決
わかりました、私はついにそれを機能させました。追加 require 'rubygems/version'
ri_path.rbでそれを修正しました。
基本的に、使用されます puts $:
必要なパスを把握するには、検索されます。 Gem::Version
定義されていました(Rubyとすべての宝石の事前に構築されたタグテーブルが既にあるため、これは簡単でした)、検索パスの最も近いコンポーネントからバージョンへのパスを作成しました。簡単に聞こえますよね?もちろん、これはすべて私に数日かかりました。
所属していません StackOverflow