Impossible d'exécuter Fastri sur Cygwin: Version constante non initialisée (NameError)

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

  •  27-09-2019
  •  | 
  •  

Question

J'essaie de configurer Fastri (http://eigenclass.org/hiki/fastri) sur Emacs fonctionnant sur Cygwin dans Windows. L'installation de Ruby est également de Cygwin, pas la version Windows de Ruby. Après avoir téléchargé, déballer le tarball et l'exécution de configuration.rb, lorsque j'essaie d'exécuter QRI ou FRI, j'obtiens le message d'erreur suivant:

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

Ma version rubis et l'environnement des pierres précieuses:

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

J'ai jeté un coup d'œil à ri_paths.rb pour comprendre comment la version GEM :: doit être incluse dans le fichier, mais je n'ai pas pu le comprendre. J'ai essayé d'ajouter les deux require 'gem/version' et require 'version' Dans ri_paths.rb, mais pas de joie. Je reçois 'require': no such file to load -- version (LoadError)

Était-ce utile?

La solution

Ok, j'ai finalement fait fonctionner. Ajouter require 'rubygems/version' dans ri_path.rb l'a corrigé.

Fondamentalement, utilisé puts $: Pour déterminer les chemins qui nécessitent une recherche par le biais, a découvert où Gem::Version a été défini (j'avais déjà une table de balises pré-construite pour Ruby et tous mes joyaux, donc c'était facile), et j'ai travaillé le chemin vers la version à partir du composant le plus proche du chemin de recherche. Cela semble simple, non? Bien sûr, tout cela m'a pris quelques jours, le Ruby Noob que je suis.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top