代码之家  ›  专栏  ›  技术社区  ›  Rohith

无法在cygwin上运行fastri:未初始化的常量gem::version(nameerror)

  •  1
  • Rohith  · 技术社区  · 15 年前

    我正在尝试在Windows中的cygwin上运行的emacs上设置fastri(http://eigenclass.org/hiki/fastri)。Ruby的安装也来自Cygwin,而不是Ruby的Windows版本。 下载、解包tarball并运行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
    

    我的Ruby版本和gem环境:

    [/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::version应该如何包含在文件中,但我没想到。我试着把两者都加进去 require 'gem/version' 和 require 'version' 但没有快乐。我得到 'require': no such file to load -- version (LoadError)

    1 回复  |  直到 15 年前
        1
  •  1
  •   Rohith    15 年前

    好吧,我终于把它弄好了。 添加 require 'rubygems/version' 在ri_path.rb中修复了它。

    基本上,使用 puts $: 要找出需要搜索的路径,请找到 Gem::Version 已经定义了(我已经为Ruby和我的所有gems准备了一个预构建的标签表,所以这很容易),并从搜索路径的最近组件中找到了版本的路径。听起来很简单,对吧?当然,这一切花了我几天时间,我是个红宝石角。