Impossibile eseguire Fastri su Cygwin: costante non iniziale gem :: versione (nameerror)

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

  •  27-09-2019
  •  | 
  •  

Domanda

Sto cercando di configurare Fastri (http://eigenclass.org/hiki/fastri) su EMAC in esecuzione su Cygwin in Windows. L'installazione di Ruby è anche di Cygwin, non dalla versione di Windows di Ruby. Dopo il download, disimballare il tarball ed eseguire setup.rb, quando provo a eseguire QRI o FRI, ricevo il seguente messaggio di errore:

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

La mia versione di Ruby e l'ambiente gemma:

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

Ho dato un'occhiata a ri_paths.rb per capire come la versione Gem :: dovrebbe essere inclusa nel file, ma non sono riuscito a capirlo. Ho provato ad aggiungere entrambi require 'gem/version' e require 'version' In ri_paths.rb, ma nessuna gioia. ottengo 'require': no such file to load -- version (LoadError)

È stato utile?

Soluzione

Ok, finalmente l'ho fatto funzionare. Aggiunta require 'rubygems/version' in ri_path.rb ha risolto.

Fondamentalmente, usato puts $: Per capire i percorsi che richiedono la ricerca attraverso ', scoperto dove Gem::Version È stato definito (avevo già un tavolo da tag pre-costruito per Ruby e tutte le mie gemme, quindi è stato facile) e ho elaborato il percorso verso la versione dal componente più vicino del percorso di ricerca. Sembra semplice, giusto? Certo, tutto questo mi ha impiegato un paio di giorni, il Ruby Noob che sono.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top