web-dev-qa-db-ja.com

libidn.soは存在しますが、cgiはそれを見つけることができません

私はDebian6サーバー、64ビットを持っています...

Ldconfig、ldconfigパス、シンボリックリンク...、再起動などを確認しましたが、それでもcgiはlibidn.so.11を見つけることができません。パッケージlibidn11がインストールされます(念のため、libidn11-devおよびlibnet-libidnを含みます) -Perl

root@server:/home/user/public_html/cgi-bin/# ldd tbk_bp_pago.cgi
            linux-gate.so.1 =>  (0xf77c4000)
            **libidn.so.11 => not found**
            libc.so.6 => /lib32/libc.so.6 (0xf7676000)
            libnsl.so.1 => /lib32/libnsl.so.1 (0xf765e000)
            libdl.so.2 => /lib32/libdl.so.2 (0xf765a000)
            librt.so.1 => /lib32/librt.so.1 (0xf7651000)
            libpthread.so.0 => /lib32/libpthread.so.0 (0xf7638000)
            /lib/ld-linux.so.2 (0xf77c5000)

ライブラリが存在します

root@server:/home/user/log# locate libidn.so.11
/usr/lib/libidn.so.11
/usr/lib/libidn.so.11.5.44
root@server:/home/user/log# ldconfig  -v | grep "libidn.so.11"
        libidn.so.11 -> libidn.so.11.5.44

Centos 5、64ビットマシンでもテストしましたが、同じ問題が発生します...

どんな助けでも大歓迎です。

更新:修正しました、ありがとう

root@server:/tmp# ar vx libidn11_1.15-2_i386.deb
root@server:/tmp# tar -xvzf data.tar.gz
root@server:/tmp# cd usr/
root@server:/tmp/usr# cp -R lib/ libidn32/
root@server:/tmp/usr# mv libidn32/ /usr/lib32
root@server:/tmp/usr# echo "/usr/lib32/libidn32" >> /etc/ld.so.conf.d/libc.conf
root@server:/tmp/usr# ldconfig
root@server:/tmp/usr# ldd /home/user/public_html/cgi-bin/kcc6/tbk_*
/home/user/public_html/cgi-bin/kcc6/tbk_bp_pago.cgi:
        libidn.so.11 => /usr/lib32/libidn32/libidn.so.11 (0xf7702000)
1
user119205

ライブラリの64ビットバージョンがありますが、CGIバイナリにはおそらく32ビットバージョンが必要です(他のライブラリから推測されます)。いくつかのグーグルでパッケージ「ia32-libs-libidn11」を見つけましたが、ここにDebianボックスがないため、テストできません。

リポジトリでそれに類似したものを検索してみてください( "ia32-libs-libidn"またはlibidn11)

1
mulaz