自分の新鮮なRuby(MRI 1.9.3)をコンパイルすると仮定すると、デフォルトのLOAD_PATHは何ですか?そして、それはどのように計算されますか?デフォルトのRuby LOAD_PATHはどのように決定されていますか?
10
A
答えて
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
武装、Rubyのソースの調査は、(これはRubyの1.9.3である)definition of ruby_initial_load_paths[]
in version.c
につながります。最初に適用されるもの(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
あなたのコンパイルは、それが一般的である
/usr/lib/ruby/X.Y.Z
X.Y.ZがあなたのルビーC APIバージョンのバージョン番号を表します* nixのベースのシステム上のlibディレクトリ を作成します。私のマシン上で
関連する問題
- 1. ビットマップヒープスキャンとインデックススキャンはどのように決定されますか?
- 2. HDFSレプリケーションファクタはどのように決定されますか?
- 3. タイプはどのように決定されますか?
- 4. テキストファイルの行数はどのようにして決定されますか?
- 5. RandomForestClassifierのfeature_importancesはどのようにして決定されますか?
- 6. time_tはどのように定義されていますか?
- 7. 開始ブロックの値はどのように決定されますか?
- 8. ELFファイルでは、_startのアドレスはどのように決定されますか?
- 9. パペット証明書名はどのように決定されますか?
- 10. マクロはどのように定義されていますか?
- 11. MySQLのauto_incrementのステップサイズはどのように決定されますか
- 12. このチャートのx軸データはどのように決定されますか
- 13. Ruby。 full_descriptionは、子クラスルームで定義されていても定義されていません。これをどうやって解決するのですか?
- 14. $ LOAD_PATHに作業ディレクトリは含まれていませんか?
- 15. Rubyでキーワードはどこに定義されていますか?
- 16. このjava.lang.NumberFormatExceptionはどのように解決されますか?
- 17. ruby on railはどのように実装されていますか?
- 18. デバイスのクロック速度はどのように決定されますか?
- 19. SPIプロトコルでの動作モードはどのように決定されますか?
- 20. varargs配列のコンポーネントタイプはどのように決定されますか?
- 21. libstdC++の依存関係はどのように決定されますか?
- 22. ResourceDictionaryキーの順序はどのように決定されますか?
- 23. 高度なカスタムフィールドのmeta_valueはどのように決定されますか?
- 24. EntityFrameworkコードベースの移行、順序はどのように決定されますか?
- 25. Hiveデータベースのサイズはどのように決定されますか?
- 26. 次のレコード番号(PK)はどのように決定されますか?
- 27. HTMLスクロールバーの行/ページサイズはどのように決定されますか
- 28. 定数のアクセシビリティはどのようにして決まりますか?
- 29. Sprockets append_pathはSASSに追加されませんload_path
- 30. 外部シンボルはどのように解決されますか?
いいえ、バージョン番号はRuby C APIバージョンを表します –