Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library _builtin > module Kernel > $-I
$:
$LOAD_PATH
$-I
Rubyライブラリをロードするときの検索パスです。
Kernel.#load や Kernel.#require がファイルをロードする時に検索するディレクトリのリストを含む配列です。
起動時には、 [[unknown:Rubyの起動/-I directory]] オプションで指定したディレクトリ、 環境変数 [[unknown:環境変数/RUBYLIB]] の値、 コンパイル時に指定したデフォルト値、 "." (カレントディレクトリ) をこの順番で含みます。
以下に典型的な UNIX システム上でのロードパスを示します。
-I で指定したパス 環境変数 RUBYLIB の値 /usr/local/lib/ruby/site_ruby/VERSION サイト固有、バージョン依存のライブラリ /usr/local/lib/ruby/site_ruby/VERSION/ARCH サイト固有、システム依存、拡張ライブラリ /usr/local/lib/ruby/site_ruby サイト固有ライブラリ /usr/local/lib/ruby/VERSION 標準ライブラリ /usr/local/lib/ruby/VERSION/ARCH 標準、システム依存、拡張ライブラリ . カレントディレクトリ
上記表中の VERSION は Ruby のバージョンを表す文字列で、 「1.6」や「1.8」です。 ARCH はハードウェアと OS を表す文字列で、 「i686-linux」や「alpha-osf5.1」などです。 ARCH の値は Config::CONFIG['arch'] で得られます。
コンパイル時のデフォルトパスは 多くの UNIX システムでは "/usr/local/lib/ruby" です。 [[unknown:mswin32]]、[[unknown:mingw32]]、[[unknown:Cygwin]]、 [[unknown:bccwin32]]、[[unknown:mswince]] 環境では ruby.dll の位置からの相対で決まります。 [[unknown:DJGPP]] と [[unknown:emx]] (OS/2) では ruby.exe の位置からの相対で決まります。
-T オプションで起動時に $SAFE を 1 以上に 設定したときは "." (カレントディレクトリ) はロードパスに入りません。
require 'foo' を実行すると、 以下のように foo.rb と foo.so が交互に探索されます。
/usr/local/lib/ruby/site_ruby/VERSION/foo.rb /usr/local/lib/ruby/site_ruby/VERSION/foo.so /usr/local/lib/ruby/site_ruby/VERSION/ARCH/foo.rb /usr/local/lib/ruby/site_ruby/VERSION/ARCH/foo.so : :
なお、共有ライブラリの拡張子が .so でないシステムでは 「.so」が適切な拡張子に変更されます。 例えば HP-UX では require 'foo.so' とすると foo.sl を検索します。 したがって Ruby で記述されたコードでは常に .so を使うべきです。
なお、ロードパスをコマンドラインから調べるには
$ ruby -e 'puts $:'
とします。
この変数はグローバルスコープです。