EN JA
LIBMAP.CONF(5)
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
ライブラリ検索パスを通って繰り返すとき、 path2path1 を正確に一致させるあらゆる要素を置き換えます。
[ 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

関連項目

ldd(1), rtld(1)

歴史

libmap メカニズムは、 FreeBSD 5.1 ではじめて登場しました。

作者

このマニュアルページは、 Matthew N. Dodd <winter@jurai.net>によって書かれ、 Dag-Erling Smørgrav <des@FreeBSD.org>によって大規模に書き換えられました。
September 16, 2013 FreeBSD