お名前.com 共用サーバーSDで再び curl が動かなくなった.
最もシンプルに curl https://www.yahoo.co.jp/
を CGI から実行すると以下のように怒られる.
curl: (48) An unknown option was passed in to libcurl
原因は curl と libcurl の version が揃っていないこと.CGIから curl --version
すると確かに以下のように curl は 7.54.1 で libcurl は 7.32.0.
curl 7.54.1 (i386-pc-solaris2.10) libcurl/7.32.0 OpenSSL/1.0.2n zlib/1.2.3 libidn/1.26
Release-Date: 2017-06-14
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP
具体的なファイルをみてみても,ldd /usr/local/bin/curl
が以下で,
libcurl.so.4 => /usr/local/lib/amd64/libcurl.so.4
libssl.so.1.0.0 => /usr/local/lib/amd64/libssl.so.1.0.0
libcrypto.so.1.0.0 => /usr/local/lib/amd64/libcrypto.so.1.0.0
libldap-2.4.so.2 => /usr/local/lib/amd64/libldap-2.4.so.2
liblber-2.4.so.2 => /usr/local/lib/amd64/liblber-2.4.so.2
libresolv.so.2 => /lib/64/libresolv.so.2
libgen.so.1 => /lib/64/libgen.so.1
libnsl.so.1 => /lib/64/libnsl.so.1
libsocket.so.1 => /lib/64/libsocket.so.1
libz.so => /usr/lib/64/libz.so
librt.so.1 => /lib/64/librt.so.1
libc.so.1 => /lib/64/libc.so.1
libidn.so.11 => /usr/local/lib/64/libidn.so.11
libgcc_s.so.1 => /usr/sfw/lib/64/libgcc_s.so.1
libdl.so.1 => /lib/64/libdl.so.1
libmp.so.2 => /lib/64/libmp.so.2
libmd.so.1 => /lib/64/libmd.so.1
libscf.so.1 => /lib/64/libscf.so.1
libaio.so.1 => /lib/64/libaio.so.1
libiconv.so.2 => /usr/local/lib/64/libiconv.so.2
libdoor.so.1 => /lib/64/libdoor.so.1
libuutil.so.1 => /lib/64/libuutil.so.1
libm.so.2 => /lib/64/libm.so.2
libcurl.so.4 関連は以下のような感じ.Symlink 先が最近変更になったらしい...
-rwxr-xr-x 1 root root 202504 Jun 26 2017 /usr/local/bin/curl
-rw-r--r-- 1 root root 770226 Jan 27 2014 /usr/local/lib/amd64/libcurl.a
-rwxr-xr-x 1 root root 1164 Jan 27 2014 /usr/local/lib/amd64/libcurl.la
lrwxrwxrwx 1 root root 16 Nov 14 14:20 /usr/local/lib/amd64/libcurl.so -> libcurl.so.4.3.0
lrwxrwxrwx 1 root root 16 Nov 14 14:20 /usr/local/lib/amd64/libcurl.so.4 -> libcurl.so.4.3.0
-rwxr-xr-x 1 root root 505336 Jan 27 2014 /usr/local/lib/amd64/libcurl.so.4.3.0
-rwxr-xr-x 1 root root 565344 Jun 26 2017 /usr/local/lib/amd64/libcurl.so.4.4.0
ということで LD_PRELOAD=/usr/local/lib/amd64/libcurl.so.4.4.0 curl
で curl を起動すると正しく動く.以下 LD_PRELOAD=/usr/local/lib/amd64/libcurl.so.4.4.0 curl --verion
の結果.
curl 7.54.1 (i386-pc-solaris2.10) libcurl/7.54.1 OpenSSL/1.0.2n zlib/1.2.3
Release-Date: 2017-06-14
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets HTTPS-proxy
あと,お名前.com 共用サーバーSDに SSH でログインすると時間が結構ずれてる(WEB サーバは問題なさそう).
参考:
- https://stackoverflow.com/questions/11678085/curl-48-an-unknown-option-was-passed-in-to-libcurl
- https://qiita.com/riffrain@github/items/74594fe358ac76c72f5a
追記 (2019/1/28)
今見てみたらcurl
だけで動くようになっていた.逆にLD_PRELOAD=/usr/local/lib/amd64/libcurl.so.4.4.0 curl
だとコケる.
ld.so.1: curl: fatal: /usr/local/lib/amd64/libcurl.so.4.4.0: open failed: No such file or directory
ldd /usr/local/bin/curl
.
libcurl.so.4 => /usr/local/lib/amd64/libcurl.so.4
libnsl.so.1 => /lib/64/libnsl.so.1
libsocket.so.1 => /lib/64/libsocket.so.1
libssl.so.1.0.0 => /usr/local/lib/amd64/libssl.so.1.0.0
libcrypto.so.1.0.0 => /usr/local/lib/amd64/libcrypto.so.1.0.0
libz.so.1 => /usr/lib/64/libz.so.1
librt.so.1 => /lib/64/librt.so.1
libc.so.1 => /lib/64/libc.so.1
libgcc_s.so.1 => /usr/local/lib/amd64/libgcc_s.so.1
libmp.so.2 => /lib/64/libmp.so.2
libmd.so.1 => /lib/64/libmd.so.1
libscf.so.1 => /lib/64/libscf.so.1
libdl.so.1 => /lib/64/libdl.so.1
libaio.so.1 => /lib/64/libaio.so.1
libdoor.so.1 => /lib/64/libdoor.so.1
libuutil.so.1 => /lib/64/libuutil.so.1
libgen.so.1 => /lib/64/libgen.so.1
libm.so.2 => /lib/64/libm.so.2
libcurl.so.4 関連.
-rwxr-xr-x 1 root root 223032 Nov 30 09:51 /usr/local/bin/curl
-rw-r--r-- 1 root root 943778 Nov 30 09:51 /usr/local/lib/amd64/libcurl.a
-rwxr-xr-x 1 root root 1019 Nov 30 09:51 /usr/local/lib/amd64/libcurl.la
lrwxrwxrwx 1 root root 16 Jan 28 13:58 /usr/local/lib/amd64/libcurl.so -> libcurl.so.4.5.0
lrwxrwxrwx 1 root root 16 Jan 28 13:58 /usr/local/lib/amd64/libcurl.so.4 -> libcurl.so.4.5.0
-rwxr-xr-x 1 root root 572608 Nov 30 09:51 /usr/local/lib/amd64/libcurl.so.4.5.0
curl --verion
.
curl 7.62.0 (x86_64-pc-solaris2.10) libcurl/7.62.0 OpenSSL/1.0.2n zlib/1.2.3
Release-Date: 2018-10-31
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets HTTPS-proxy
いつのまにか i386-pc-solaris2.10 から x86_64-pc-solaris2.10 に変更になってる...