やるきなし

2017/03/26 00:54 / curl on お名前.com 共用サーバーSD CGI

お名前.com 共用サーバーSDにて,ちょっとした CGI で curl を利用していたのだが,急に使えなくなった.仕方なく wget を使うことにする.

原因は(64-bitの) libldap-2.4.so.2,liblber-2.4.so.2 が存在しないこと.ldap 対応の curl が install されているらしい.ちなみに curl は 64-bit で,OS は Solaris 10.ssh でログインした際には 32-bit 版の curl が普通に使える.

% ldd /usr/local/bin/curl (← ruby の CGI で `ldd /usr/local/bin/curl` とかを叩く)
    libcurl.so.4 =>  /usr/local/lib/64/libcurl.so.4
    libidn.so.11 =>  /usr/lib/64/libidn.so.11
    libiconv.so.2 =>     /usr/local/lib/64/libiconv.so.2
    libssl.so.1.0.0 =>   /usr/local/lib/64/libssl.so.1.0.0
    libcrypto.so.1.0.0 =>    /usr/local/lib/64/libcrypto.so.1.0.0
    libldap-2.4.so.2 =>  (file not found)
    liblber-2.4.so.2 =>  (file not found)
    libresolv.so.2 =>    /lib/64/libresolv.so.2
    libgen.so.1 =>   /lib/64/libgen.so.1
    libz.so.1 =>     /usr/lib/64/libz.so.1
    librt.so.1 =>    /lib/64/librt.so.1
    libsocket.so.1 =>    /lib/64/libsocket.so.1
    libnsl.so.1 =>   /lib/64/libnsl.so.1
    libc.so.1 =>     /lib/64/libc.so.1
    liblber-2.4.so.2 =>  (file not found)
    libldap-2.4.so.2 =>  (file not found)
    libgcc_s.so.1 =>     /usr/sfw/lib/64/libgcc_s.so.1
    libdl.so.1 =>    /lib/64/libdl.so.1
    libaio.so.1 =>   /lib/64/libaio.so.1
    libmd.so.1 =>    /lib/64/libmd.so.1
    libmp.so.2 =>    /lib/64/libmp.so.2
    libscf.so.1 =>   /lib/64/libscf.so.1
    libdoor.so.1 =>  /lib/64/libdoor.so.1
    libuutil.so.1 =>     /lib/64/libuutil.so.1
    libm.so.2 =>     /lib/64/libm.so.2

もちろん 64-bit libldap-2.4.so.2,liblber-2.4.so.2 をどこかから入手して,LD_RUN_PATH でパス指定するなども考えたが,まず Solaris 10 のバイナリがなかなか見つからず(sunsite.sut.ac.jpはいつのまにかなくなっていて,KDDI のミラーも404),https://mirror.opencsw.org/opencsw/ に OpenCSW Solaris package archive があるにはあったが,.pkg.gz の取り扱い(Linux 等での展開)を考えた時点で面倒になって断念.

追記(2018/2/11)

今調べてみたら libldap-2.4.so.2 および liblber-2.4.so.2 が用意されていて,curl が CGI から動くようになっていた.

Related articles