Scroll to navigation

ld.so(8) System Manager's Manual ld.so(8)

名前

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

説明

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

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

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

環境変数

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

関連項目

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