FreeBSD QandA 1238

FreeBSD QandA

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 まで お知らせください。