Incapaz de executar Fastri em Cygwin: Gem Constant não inicializada :: versão (NameError)

StackOverflow https://stackoverflow.com/questions/4039858

  •  27-09-2019
  •  | 
  •  

Pergunta

Estou tentando configurar o Fastri (http://eigenclass.org/hiki/fastri) no Emacs em execução no Cygwin no Windows. A instalação do Ruby também é da Cygwin, não a versão do Windows do Ruby. Após o download, descompacte o tarball e executando o setup.rb, quando tento executar QRI ou sexta, recebo a seguinte mensagem de erro:

    [/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

Minha versão para rubi e ambiente de gemo:

[/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/

Dei uma olhada no RI_PATHS.RB para descobrir como a versão Gem :: deve ser incluída no arquivo, mas não consegui descobrir. Eu tentei adicionar os dois require 'gem/version' e require 'version' em ri_paths.rb, mas não há alegria. eu recebo 'require': no such file to load -- version (LoadError)

Foi útil?

Solução

Ok, finalmente consegui funcionar. Adicionando require 'rubygems/version' em ri_path.rb corrigiu.

Basicamente, usado puts $: Para descobrir os caminhos que exigirão pesquisarão ', descobriu onde Gem::Version Foi definido (eu já tinha uma tabela de tags pré-criada para Ruby e todas as minhas jóias, então isso foi fácil) e trabalhei o caminho para a versão do componente mais próximo do caminho de pesquisa. Parece simples, certo? Claro, tudo isso levou alguns dias, o rubi noob que eu sou.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top