LIBMAP.CONF(5) | FreeBSD File Formats Manual | LIBMAP.CONF(5) |
名称
libmap.conf — 動的オブジェクト依存マップのための設定ファイル解説
ld-elf.so.1(1) の libmap 機能性は、動的オブジェクト依存性が任意の名前にマップされることを可能にします。/etc/libmap.conf の各行は、次の 5 つの形式の 1 つを指定できます:
- origin target
- origin の依存関係が、動的なオブジェクトをロードする間に、遭遇するときはいつでも、通常のライブラリ検索パスの origin を検索する代わりに target を使用します。
- path1 path2
- ライブラリ検索パスを通って繰り返すとき、 path2 と path1 を正確に一致させるあらゆる要素を置き換えます。
- [ constraint]
- constraint を、次の制約行またはファイルの終りまで、すべての続く制約に適用します。詳細については、 制約 セクションを参照してください。
- include file
- 現在のファイルを継続する前に file の内容を解析します。深さを入れ子にすることは、利用可能なメモリによってのみ制限されますが、遭遇した各ファイルは、一度だけ処理され、ループは、静かに無視されます。
- includedir dir
- dir を通して再帰的に、現在のファイルを継続する前に .conf で終わるあらゆるファイルの内容を解析します。深さを入れ子にすることは、利用可能なメモリによってのみ制限されますが、遭遇した各ディレクトリまたは各ファイルは、一度だけ処理され、ループは、静かに無視されます。
制約
制約されたマッピングは、制約を満たすバイナリまたはライブラリを処理するときのみ、適用されます。次の 3 つのタイプの制約があります:- Exact
- 同一の完全な形のパス名が制約を満足させる実行形式のみとなるように、制約は、文字通り一致されます。これは、実行形式 /usr/bin/foo が制約[ /usr/bin/./foo]を満足させないことを意味し、そして、逆もまた同様です。これはデフォルトの制約タイプです。
- Basename
- パスのない制約は実行形式の basename (パスの最後のファイル名) と対応します。例えば、制約[ foo]は、それがどんなディレクトリであっても /bin/foo, /usr/local/sbin/foo または他のいかなる実行形式で foo と名前が付けられたものに一致します。
- Directory
- 後続するスラッシュがある制約は、フルパス名が制約文字列で始まるなら、満足させられます。例えば、制約[ /usr/bin/]は、 /usr/bin/ で始まるパスがあるあらゆる実行形式と一致します。
制約は、いずれかの exec(3) 関数が、問題のバイナリを実行するために使用された、最初の引数として渡されたパスと照合されることに注意してください。シェルから実行されるほとんどのプログラムは、 execvp(3) または同様のものによって、フルパスなしで実行されるので、基底名 (basename) の制約タイプは、最も役に立ちます。
警告! 制約は、次の制約またはファイルの終りまですべてのマッピングに適用されます。従って、制約のないマッピングは、ファイルの先頭に置かれなければなりません。
ABI 互換性
32 ビットのバイナリ互換性を提供する 64 ビットのアーキテクチャにおいて、 /etc/libmap.conf のマッピングは、64 ビットのバイナリにのみ適用されます。 32 ビットのバイナリのためのマッピングは、 /etc/libmap32.conf に置かれなければなりません。関連ファイル
- /etc/libmap.conf
- libmap 設定ファイル。
- /etc/libmap32.conf
- 64 ビットのシステムにおける 32 ビットのバイナリのための libmap 設定ファイル。
使用例
# # origin target # libc_r.so.6 libpthread.so.2 # すべて 'libc_r' を使用 libc_r.so libpthread.so # 今 'libpthread' を使用 [/tmp/mplayer] # mplayer のテスト版は libc_r を使用 libpthread.so.2 libc_r.so.6 libpthread.so libc_r.so [/usr/local/jdk1.4.1/] # すべての Java 1.4.1 プログラムは libthr を使用 # "javavms"がフルパス名でプログラムを実行する # ので、これは正常に動作します libpthread.so.2 libthr.so.2 libpthread.so libthr.so # cups その他にロードされる Linux のみの EPSON プリンタ .so のための # グルー(のりづけ) [/usr/local/lib/pips/libsc80c.so] libc.so.6 pluginwrapper/pips.so libdl.so.2 pluginwrapper/pips.so
歴史
libmap メカニズムは、 FreeBSD 5.1 ではじめて登場しました。作者
このマニュアルページは、 <winter@jurai.net>によって書かれ、 <des@FreeBSD.org>によって大規模に書き換えられました。September 16, 2013 | FreeBSD |