EN JA
ld.so(8)
ld.so(8) FreeBSD System Manager's Manual ld.so(8)

名前

ld.so/ld-linux.so -動的なリンカ・ローダ

説明

ld.so はプログラムに必要な共有ライブラリをロードし、プログラムの実行を準備してから起動させる。コンパイルの時に ld に対して -static によって明示しない限り、 Linux バイナリはすべて不完全で、実行時にもう一段階のリンクが必要となる。

プログラムで必要とされる共有ライブラリは以下の順序で検索される。

o
環境変数 LD_LIBRARY_PATH (a.out プログラムでは LD_AOUT_LIBRARY_PATH) を用いる。ただし実行ファイルが setuid/setgid バイナリの場合は、これは無視される。
o
キャッシュファイル /etc/ld.so.cache を探す。このファイルは、 (ld.so.conf で追加指定されたものも含めた) ライブラリ検索パスから見つかったライブラリファイルの情報を集めたものである。
o
デフォルトパスである /usr/lib、次いで /lib

環境変数

LD_LIBRARY_PATH
コロン区切りのディレクトリリスト。実行時に ELF ライブラリを検索するディレクトリを指定する。 PATH 環境変数と同じように指定する。
LD_PRELOAD
スペース区切りで ELF 共有ライブラリを指定する。これはユーザーが指定でき、すべてのライブラリに先立ってロードされる。他の共有ライブラリにある関数を選択的に置き換えるために用いることができる。
LD_AOUT_LIBRARY_PATH
コロンで区切られたディレクトリのリスト。実行時に a.out のライブラリを検索するディレクトリを指定する。 PATH 環境変数と同じように指定する。
LD_AOUT_PRELOAD
ユーザーが指定する付加的な a.out 共有ライブラリの名前。他のライブラリがすべてロードされたあとにロードされる。他の共有ライブラリにある関数を選択的に置き換えるために用いることができる。
LD_NOWARN
a.out ライブラリにおけるマイナーバージョン番号の非互換に対する警告メッセージを抑制する。
LD_KEEPDIR
ロードする a.out ライブラリの名前において、ディレクトリを無視しない。このオプションは用いるべきではない。

ファイル

/lib/ld.so
a.out の動的リンカ/ローダ
/lib/ld-linux.so.*
ELF dynamic linker/loader ELF の動的リンカ/ローダ
/etc/ld.so.cache
ライブラリをサーチするディレクトリを集めたリストと、共有ライブラリの候補の整列リストを含むファイル。
/etc/ld.so.preload
プログラムの前にロードすべき ELF 共有ライブラリをスペースで区切ったリストが書かれているファイル。
lib*.so*
共有ライブラリ

関連項目

ldd(1), ldconfig(8)

バグ

現在のところ ld.so には、あるライブラリをアンロードして、互換性のあるライブラリやより新しいライブラリを再検索する機能がない。

ld.so の機能は libc のバージョン 4.4.3 以上を用いてコンパイルされた実行ファイルにしか用いることができない。

著者

David Engel, Eric Youngdale, Peter MacDonald, Hongjiu Lu, Linus Torvalds, Lars Wirzenius and Mitch D'Souza (順不同)
14 March 1998