2012-05-31 21 views

cevap

13

, ilk yükleme yolu şuna benzer: grep ile

$ 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 

Armed, Yakut kaynağına soruşturma definition of ruby_initial_load_paths[] in version.c yol açar (bu Ruby 1.9.3 üzerindedir). Geçerli olanların (ne NO_INITIAL_LOAD_PATH veya RUBY_SEARCH_PATH ayarlanmış), RUBY_SITE_LIB2 olduğunu. Bu tanım we see üzerinde tanımlayıp bakıldığında:

#define RUBY_SITE_LIB2    RUBY_SITE_LIB "/"RUBY_LIB_VERSION 

ve in turn:

#define RUBY_SITE_LIB RUBY_LIB_PREFIX"/site_ruby" 

tanımlayıp, bu zincir sonra, bu, yukarıda zaman yük yolu ilk giriş tekabül açık hale gelir. Benzer şekilde, bu değişkene giren diğer sabitler diğer yük yolu girişlerine karşılık gelir.

ruby_init_loadpath_safe() in ruby.c'da ruby_initial_load_paths[] değişkeni, işlem için gerçek yükleme yolunun ayarlandığı yerde kullanılır.

Sorunuzun yanıtı, yapının nasıl yapılandırıldığına göre, ilk yükleme yolunun #define s ile derlenme zamanında ayarlanmasıdır.

0

Sizin derleme bunun çoğunlukla

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

X.Y.Z sizin yakut C API sürümü sürüm numarasını temsil * Nix tabanlı sistemlerde bir lib dizini oluşturun. Benim makinede

+0

Hayır öyle değil, sürüm numarası Ruby C API sürümünü gösterir –

İlgili konular