2012-05-31 12 views

उत्तर

13

मेरी मशीन पर, प्रारंभिक लोड पथ इस तरह दिखता है: grep साथ

$ ruby -e 'puts $LOAD_PATH' 
/Users/matt/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1 
/Users/matt/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/x86_64-darwin10.8.0 
/Users/matt/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby 
/Users/matt/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/vendor_ruby/1.9.1 
/Users/matt/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/vendor_ruby/1.9.1/x86_64-darwin10.8.0 
/Users/matt/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/vendor_ruby 
/Users/matt/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1 
/Users/matt/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin10.8.0 

सशस्त्र, रूबी स्रोत की जांच definition of ruby_initial_load_paths[] in version.c की ओर जाता है (इस रूबी 1.9.3 पर है)। इनमें से पहला लागू होता है (न तो NO_INITIAL_LOAD_PATH या RUBY_SEARCH_PATH सेट किया गया है) RUBY_SITE_LIB2 है। कि परिभाषा we see ऊपर परिभाषित करता है को देखते हुए:

#define RUBY_SITE_LIB2    RUBY_SITE_LIB "/"RUBY_LIB_VERSION 

और in turn: परिभाषित करता है की इस श्रृंखला के बाद

#define RUBY_SITE_LIB RUBY_LIB_PREFIX"/site_ruby" 

, यह स्पष्ट हो जाता है कि इस से ऊपर मेरी लोड पथ में पहली प्रविष्टि से मेल खाती है। इसी प्रकार अन्य स्थिरांक जो इस चर में जाते हैं, अन्य लोड पथ प्रविष्टियों से मेल खाते हैं।

ruby_initial_load_paths[] परिवर्तनीय ruby_init_loadpath_safe() in ruby.c में उपयोग किया जाता है, जहां वास्तविक लोड पथ प्रक्रिया के लिए स्थापित किया जाता है।

तो आपके प्रश्न का उत्तर यह है कि प्रारंभिक लोड पथ कुछ #define एस के साथ संकलित समय पर सेट किया गया है, निर्माण के अनुसार कॉन्फ़िगर किया गया है।

0

आपका संकलन * nix आधारित सिस्टम पर एक lib निर्देशिका बनाने यह आम तौर पर है

/usr/lib/ruby/X.Y.Z 

X.Y.Z अपने माणिक सी एपीआई संस्करण की संस्करण संख्या का प्रतिनिधित्व करता है।

+0

नहीं, ऐसा नहीं है, संस्करण संख्या रूबी सी एपीआई संस्करण का प्रतिनिधित्व करती है –

संबंधित मुद्दे