ldconfig(8) | FreeBSD System Manager's Manual | 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 に以下のような行- コマンドラインから
ファイル
- /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。14 March 1998 |