鈴木@葛飾区です。 FreeBSD11.2(amd64)をインストールして、その上で古いマシンからi386のプロ グラムやライブラリをコピーして動かそうとしているのですが、妙な現象で悩 んでいます。
古い32bitのライブラリは /usr/local/lib32/10.4 にコピーしてあります。 また、rc.confで ldconfig32_paths="/usr/local/lib32/10.4 /usr/lib32 /usr/lib32/compat" のように perl5.8(i386)のたとえばPostgresSQLのモジュールですが # ldd32 /usr/local/lib/perl5/site_perl/5.8.9/mach/auto/DBD/Pg/Pg.so /usr/local/lib/perl5/site_perl/5.8.9/mach/auto/DBD/Pg/Pg.so: libpq.so.5 => not found (0) libm.so.5 => /usr/lib32/libm.so.5 (0x2862e000) libc.so.7 => /usr/lib32/libc.so.7 (0x28072000) のようにlibpq.so.5がnot foundになってしまいます。 もちろん /usr/local/lib32/10.4/libpq.so.5 は存在します。 どうも様子がおかしいのは libpq.so.5 はamd64のための /usr/local/lib/libpq.so.5 も存在していて、/usr/local/lib に同名の64bit 用ライブラリがあるとダメなのですが、/usr/local/lib/libpq.so.5 を /usr/lib に移動すると不思議なことに # ldd32 /usr/local/lib/perl5/site_perl/5.8.9/mach/auto/DBD/Pg/Pg.so /usr/local/lib/perl5/site_perl/5.8.9/mach/auto/DBD/Pg/Pg.so: libpq.so.5 => /usr/local/lib32/10.4/libpq.so.5 (0x2862e000) libm.so.5 => /usr/lib32/libm.so.5 (0x28656000) libc.so.7 => /usr/lib32/libc.so.7 (0x28072000) libthr.so.3 => /usr/lib32/libthr.so.3 (0x28684000) libintl.so.8 => not found (0) libssl.so.7 => /usr/local/lib32/compat/libssl.so.7 (0x286a7000) libcrypto.so.7 => /usr/local/lib32/compat/libcrypto.so.7 (0x28704000) のようにlibpq.so.5はokになります。 (libintl.so.8が新たにnot foundになりますが、これも同名ライブラリが 64bit/32bitにあります) ※amd64のプログラムの方も問題ありません。 32bit用ライブラリと同名のファイルが /usr/lib に存在するとokで /usr/local/lib以下に存在するとダメな理由があるのでしょうか?? 11.2でpkg/portsからインストールしたライブラリを/usr/libに移せば動きそ うではあるのですが、メンテナンス性が悪くなるためできれば避けたいです。 宜しくお願いいたします。 --- すずき _______________________________________________ freebsd-users-jp@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org"