スポンサーリンク

LDCONFIG(8) FreeBSD システム管理者マニュアル LDCONFIG(8)

名称

ldconfig − 共有ライブラリのキャッシュを設定する

書式

ldconfig [−aout | −elf] [−Rimrsv] [−f hints_file] [directory | file ...]

解説

ldconfig ユーティリティは、ダイナミックリンカが、複数のディレクトリから利 用可能な共有ライブラリを素早く捜し出すために使う ‘‘ヒント’’ の集合を準備 するために使われます。コマンドは、組み込みのシステムディレクトリとコマン ドラインで指定された任意の ディレクトリ (を指定された順番) で共有ライブラ リを探し、その結果をシステムファイルに保存します。これは、ダイナミックリ ンカが要求された共有ライブラリを読み込む際のディレクトリ検索操作オーバ ヘッドをあらかじめ払っていることになります。

コマンドラインにて指定するファイル名は共有ライブラリを検査するディレクト リを含むことが期待されます。各ディレクトリのパス名は行の先頭から始まる必 要があります。空行およびコメント文字 ‘#’ から始まる行は無視されます。ヒン トファイルに追加可能とするために、ファイル名は lib*.so.[0-9] というパター ンであることが必要です。

セキュリティ上の理由から、誰でも書き込み可能またはグループ書き込み可能な ディレクトリと、 root が所有しないディレクトリに対しては、警告メッセージ を生成してスキップします。ただし、 −i オプションが存在する場合は、例外で す。

共有ライブラリは、実行されようとするプログラムによって必要とされるなら ば、利用可能なものが自動的に読み込まれることになります。これは、実行形式 に検索パスを保存する必要性を無くします。

LD_LIBRARY_PATH 環境変数は、キャッシュから使用するディレクトリ (や、その 順序関係) を上書きしたり、共有ライブラリを探す追加のディレクトリを指定す るために使われます。 LD_LIBRARY_PATH は、共有ライブラリを読み込む必要があ る時、ダイナミックリンカによって検索されるディレクトリパスのリストをコロ ン ‘:’ で区切って指定します。これは、 ld(1) における −L オプションと、実 行時点では等価です。

ldconfig ユーティリティは典型的にはブート時の手続きのひとつとして実行され ます。

以下のオプションが ldconfig で認識されます。

       −aout

a.out 形式の共有ライブラリに対するヒントを生成します。

−elf
ELF 形式の共有ライブラリに対するヒントを生成します。

−R
以前に設定したディレクトリを再度検索します。以前作成したヒント ファイルをオープンし、ヘッダからディレクトリリストを取り出しま す。コマンドラインに指定したパス名も処理します。これが、パラメー タ無指定時のデフォルト動作です。

−f hints_file
標準のファイルの代りに、特定のヒントファイルを読み込んだり、更新 したり、その両方を行ったりします。このオプションは、テストのため に提供されています。

−i
安全ではないモードで実行します。セキュリティチェックは実行されま せん。

−m
ヒントファイルの内容を指定されたディレクトリで見付かったものに置 き換える代りに、新しいディレクトリの内容を ‘‘併合 (merge)’’ しま す。以前の ldconfig の実行によってヒントファイル内に記録されてい るディレクトリも、新しい共有ライブラリのために再び検索されます。

−r
現在のヒントファイルの中身について、標準出力に表示します。ヒント ファイルは変更されません。ヒントファイル中のディレクトリリストが 組み込まれます。

−s
共有ライブラリのために、システムの組み込みディレクトリ (‘‘/usr/lib’’) を検索しません。

−v
冗長モードに切り替えます。

セキュリティ

セット uid (set-user-Id) プログラムのアドレス空間に共有ライブラリを読み込 む時には、特別の注意をしなければなりません。そのようなプログラムがプログ ラムの所有者以外によって実行される時はいつでも、ダイナミックリンカはヒン トファイルからだけ共有ライブラリを読み込みます。特に、 LD_LIBRARY_PATH は、ライブラリを探すためには使われません。従って、ldconfig の役割には 2 つあります。素早い検索のためにヒント集合を作成することに加えて、共有オブ ジェクトが共有ライブラリを安全に読み込むことができるディレクトリの集まり を特定することも、その役割です。

環境変数

       OBJFORMAT

/etc/objformat (後述) に優先し、 −aout−elf のどちらがデ フォルトであるかを決定します。設定されている場合、値は ‘aout’ もしくは ‘elf’ のいずれかである必要があります。

関連ファイル

       /var/run/ld.so.hints

a.out ダイナミックリンカの標準ヒントファイ ル。
/var/run/ld-elf.so.hints
ELF ダイナミックリンカの標準ヒントファイル。
/etc/ld.so.conf
伝統的な設定ファイルであり、 −aout 付きで起 動した場合のためにディレクトリ名を格納しま す。
/etc/ld-elf.so.conf
伝統的な設定ファイルであり、 −elf 付きで起動 した場合のためにディレクトリ名を格納します。
/etc/objformat
−aout
−elf のどちらがデフォルトであるかを 決定します。存在する場合、 ‘OBJFORMAT=aout’ か ‘OBJFORMAT=elf’ のいずれかの 1 行から成る 必要があります。

関連項目

ld(1), link(5)

歴史

ldconfig ユーティリティは SunOS 4.0 で初めて現れました。現在の形は、 FreeBSD 1.1 からです。

バグ

−aout 指定時には、実行されないセキュリティチェックがあります (例えば、追 加されたディレクトリの root の所有権)。

FreeBSD 10.0 October 3, 1993 FreeBSD 10.0

スポンサーリンク