ldconfig(8)

名前
ldconfig - 実行時リンクの結合関係を決定する

書式
ldconfig [-DvqnNX] [-f conf] [-C cache] [-r root] directory ...
ldconfig -l [-Dvq] library ...
ldconfig -p

説明
ldcofig は最新の共有ライブラリに対して必要なリンクを作成したり、 ライブラリをキャッシュしたりする (キャッシュは実行時リンカ ld.so が用いる)。 ライブラリは、コマンドラインや /etc/ld.so.conf ファイルで指定されたディレクトリや、共有ライブラリが 通常置かれるディレクトリ (/usr/lib と /lib) から検索される。 ldconfig は処理するライブラリのヘッダ部分とファイル名をチェックし、 どのバージョンに対してリンクを更新すべきかを判断する。 ldconfig はライブラリを検索するときシンボリックリンクを無視する。

ldconfig は ELF ライブラリの種類 (libc5 か libc6/glibc か) を判断するとき、 そのライブラリがリンクしている C ライブラリを参考にする。 したがってダイナミックライブラリを作成するときには、 libc に対するリンクを (-lc をつかって) 明示しておくと良い。

すでに存在しているライブラリの中には、種類を区別するために充分な 情報が含まれていないものもある。このため /etc/ld.so.conf ファイルでライブラリの形式を指定することができるようになっている。 これは区別不能な ELF ライブラリだけに用いるものである。 フォーマットは "dirname=TYPE" のようにする。ここで TYPE は libc4, libc5, libc6 のいずれかである (この書式はコマンドラインでも使える)。スペースを入れてはならない。 -p オプションも見ておくこと。

名前に = が含まれているディレクトリは、形式指定をしない限り 用いることができなくなった。

ldconfig は通常スーパーユーザー権限で実行しなければならない。 root が所有しているディレクトリやファイルへの書き込み権限が 必要になるからである。 ldconfig は通常、起動時に /etc/rc スクリプトから自動的に実行される。ただし新し い DLL をインストールしたときには必ず手動で実行しなければならない。

オプション

-D  デバッグモード。 -N と -X が暗黙のうちに指定される。

-v  饒舌モード。現在のバージョン番号を表示する。またそれぞれのディレクト リをスキャンし、新しいリンクを生成するたびに、その内容を表示する。 メッセージ抑制モードを上書きする。

-q  メッセージ抑制モード。 警告を表示しない。

-n  コマンドラインで指定されたディレクトリのみを処理する。通常共有ライブラリが 置かれるディレクトリ (/usr/lib と /lib) や /etc/ld.so.conf で指定されたディレクトリは処理しない。暗黙のうちに -N が指定される。

-N  キャッシュを再構成しない。同時に -X が同時に指定されなければ、リンクのほうは更新される。

-X  リンクを更新しない。 -N が同時に指定されなければ、キャッシュのほうは再構成される。

-f conf
    conf を /etc/ld.so.conf の代わりに用いる。

-C cache
    cache を /etc/ld.so.cache の代わりに用いる。

-r root
    root にカレントディレクトリを変更し、ここをルートディレクトリとして用いる。

-l  ライブラリモード。それぞれのライブラリを手動でリンクする。 熟練者のみが用いるべきである。

-p  現在のキャッシュに保存されているディレクトリのリストと、 ライブラリの候補を表示する。

例
起動ファイル /etc/rc に以下のような行
    /sbin/ldconfig -v
があると、共有バイナリへの正しいリンクが生成され、キャッシュが再構成さ れる。

コマンドラインから
    # /sbin/ldconfig -n /lib
を root 権限で実行すると、 /lib に新しくインストールされた DLL に対し て、正しいシンボリックリンクを生成する。

ファイル
/lib/ld.so
    実行時リンカ/ローダー。
/etc/ld.so.conf
    コロン・スペース・タブ・改行・コンマで区切られたディレクトリのリスト。 それぞれのディレクトリでライブラリが検索される。
/etc/ld.so.cache
    /etc/ld.so.conf で指定されたディレクトリで見つかったライブラリの順序付きリスト。
lib*.so.version
    共有ライブラリ。

関連項目
ldd(1), ld.so(8)

バグ

ldconfig の ld.so に関連した機能は、 libc バージョン 4.4.3 以上でコンパイルされた実行ファ イルでしか利用できない。

ldconfig はユーザープロセスなので、手動で実行しなければならない。また新たな DLL がインストールされたときには、そのライブラリを ld.so が利用できるように共有ライブラリの再調整やリンクの 張りかえをしなければならないが、これを動的に行う手段は存在しない。

著者
David Engel と Mitch D'Souza。