FreeBSD QandA 1238
Q. FreeBSD 3.x で互換ライブラリ (compat* 配布ファイルに含まれます) も
install してあるはずなのに、以下のようなメッセージが出て、昔のバイナリ
が実行できません。
ld.so failed: Can't find shared library "libc.so.2.1"
A. a.out 形式の互換ライブラリは /usr/lib/compat/aout/ に存在しないと
いけないはずですが、バグのため一部は /usr/lib/compat/lib*.so.*.* として
インストールされてしまいます。これは 3.3-RELEASE で修正されていますが、
それより前のリリースをお使いなら次の様に対処してください。
# mv /usr/lib/compat/lib*.so.*.* /usr/lib/compat/aout/
# ldconfig -aout -R
このとき rc.conf(5) で変数 ldconfig_paths_aout に /usr/lib/compat/aout
が含まれている事を確認してください。もし抜けていたら適切に修正して、
リブートするか ldconfig(8) の -m オプションを使ってください。
間違い・追加情報を見付けた場合は、
修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで
お知らせください。