我正在尝试将Fastri(http://eigenclass.org/hiki/fastri)设置在Windows的Cygwin上。 Ruby安装也来自Cygwin,而不是Ruby的Windows版本。下载后,解开tarball和running setup.rb,当我尝试运行QRI或周五时,我会收到以下错误消息:

    [/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和所有宝石的预制标签表,因此很容易),并从搜索路径的最接近组件中弄清了通往版本的路径。听起来很简单,对吧?当然,这一切花了我几天,我就是Ruby Noob。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top