غير قادر على تشغيل fastri على cygwin: جوهرة ثابتة غير مؤهلة :: nameerror)
سؤال
أحاول إعداد Fastri (http://eigenclass.org/hiki/fastri) على emacs التي تعمل على cygwin في Windows. تثبيت Ruby هو أيضًا من Cygwin ، وليس إصدار Windows من Ruby. بعد التنزيل ، تفريغ Tarball و Running 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
نسخة روبي وبيئة الأحجار الكريمة:
[/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 :: في الملف ، لكنني لم أستطع معرفة ذلك. حاولت إضافة كليهما require 'gem/version'
و require 'version'
في ri_paths.rb ، ولكن لا فرح. انا حصلت 'require': no such file to load -- version (LoadError)
المحلول
حسنًا ، لقد عملت أخيرًا. مضيفا require 'rubygems/version'
في ri_path.rb إصلاحه.
في الأساس ، تستخدم puts $:
لمعرفة المسارات التي تتطلب البحث من خلال ، اكتشف أين Gem::Version
تم تعريفه (كان لدي بالفعل جدول علامات تم إنشاؤه مسبقًا لروبي وجميع الأحجار الكريمة الخاصة بي ، لذلك كان هذا سهلاً) ، وعملت على المسار إلى الإصدار من أقرب مكون من مسار البحث. تبدو بسيطة ، أليس كذلك؟ بالطبع ، كل هذا استغرق مني يومين ، روبي نوب الذي أنا عليه.