plenv install-cpanm でエラー

  • 2
    Like
  • 0
    Comment
More than 1 year has passed since last update.

plenv install-cpanm を実行すると、以下の様なエラーが出る環境があった。

$ plenv install-cpanm
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   303    0   303    0     0   2648      0 --:--:-- --:--:-- --:--:--  2657
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
100   226  100   226    0     0    198      0  0:00:01  0:00:01 --:--:--   198
Bareword found where operator expected at - line 3, near "400 Bad"
        (Missing operator before Bad?)
Bareword found where operator expected at - line 6, near "<p>Your"
        (Missing operator before Your?)
syntax error at - line 2, near "html>"
Execution of - aborted due to compilation errors.

install-cpanm内部で使っているcurlコマンドが怪しいということで、
curlコマンドのバージョンを調べた。

$ curl --version
curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz

バージョンに関係なく、SSL通信にNSSが使われているのが問題そうなので、
OpennSSLに切り替えた。

ただ、yumでなんとかOpenSSLに切替えようとしたが、
やり方が分からなかったので、以下の手順でコンパイルした。

# cd /usr/local/src
# wget http://curl.haxx.se/download/curl-7.36.0.tar.gz
# tar xvzf curl-7.36.0.tar.gz
# cd curl-7.36.0
# ./configure --prefix=/usr/local --with-openssl
# make && make install
# mv /usr/bin/curl /usr/bin/curl.old

予想通りOpenSSLを使用したcurlではうまく行った。
うまく行ったcurlのバージョンは以下のとおり。

$ curl --version
curl 7.36.0 (x86_64-unknown-linux-gnu) libcurl/7.36.0 OpenSSL/1.0.1e zlib/1.2.3 libidn/1.18
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: IDN IPv6 Largefile NTLM NTLM_WB SSL libz

ひとまず問題なくなったが、Chefでyumインストールしている部分なので、
確実にOpenSSLを使用するcurlをyumでインストールしたい。

けど、やり方はまだわかっていない。