Невозможно запустить fastri на cygwin: неинициализированная константа Gem :: Version (NameError) - PullRequest
1 голос
/ 28 октября 2010

Я пытаюсь настроить fastri (http://eigenclass.org/hiki/fastri) на emacs, работающем на cygwin в Windows. Установка 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' в ri_paths.rb, но без радости. Я получаю 'require': no such file to load -- version (LoadError)

1 Ответ

1 голос
/ 30 октября 2010

Хорошо, наконец-то все заработало. Исправлено добавление require 'rubygems/version' в ri_path.rb.

В основном, использовали puts $:, чтобы выяснить, какие пути требуют поиска через ', выяснил, где был определен Gem::Version (у меня уже была предварительно созданная таблица тегов для ruby ​​и всех моих драгоценных камней, так что это было легко ) и выработал путь к версии из ближайшего компонента пути поиска. Звучит просто, правда? Конечно, все это заняло у меня пару дней, рубиновый нуб, какой я есть.

...