无法在Cygwin上运行Fastri:非初始化的常数GEM ::版本(nameerror)
题
我正在尝试将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。
不隶属于 StackOverflow