No se puede ejecutar fastri en cygwin: gema constante no inicializado :: versión (nameError)

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

  •  27-09-2019
  •  | 
  •  

Pregunta

Estoy tratando de configurar Fastri (http://eigenclass.org/hiki/fastri) en emacs que se ejecutan en cygwin en Windows. La instalación de Ruby también es de Cygwin, no de la versión de Windows de Ruby. Después de descargar, desempaquetando el tarball y la ejecución setup.rb, cuando intento ejecutar QRI o FRI, recibo el siguiente mensaje de error:

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

Mi versión de rubí y entorno de gemas:

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

Eché un vistazo a ri_paths.rb para descubrir cómo se debe incluir la versión GEM :: en el archivo, pero no pude resolverlo. Intenté agregar ambos require 'gem/version' y require 'version' En ri_paths.rb, pero no hay alegría. yo obtengo 'require': no such file to load -- version (LoadError)

¿Fue útil?

Solución

Ok, finalmente lo hice funcionar. Suplente require 'rubygems/version' En ri_path.rb lo arregló.

Básicamente, usado puts $: para descubrir las rutas que requieren buscarán a través de ', descubriendo dónde Gem::Version se definió (ya tenía una mesa de etiquetas preconstruidas para Ruby y todas mis gemas, por lo que esto fue fácil), y elaboré el camino a la versión desde el componente más cercano de la ruta de búsqueda. Suena simple, ¿verdad? Por supuesto, todo esto me llevó un par de días, el novato rubí que soy.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top