20

hereの手順を既に実行しましたが、 Unsupported Protocolcurl--http2オプションを使用する場合はまだあります。同様に、 を に設定すると、プログラムは HTTP/2 ではなく HTTP/1.1 を使用して通信しますCURLOPT_HTTP_VERSIONCURL_HTTP_VERSION_2_0

プラットフォーム: VMware Player 7 上の Ubuntu 15.04。

で nghttp2-1.0.4 をインストールし--prefix=/usr/localたので、libnghttp2.* は にあり/usr/local/libます。

これは、curl-7.43.0 を構成するコードです。

./configure --with-nghttp2=/usr/local

結果は、HTTP2 が有効になっていることを示しています。

    HTTP2 support:    enabled (nghttp2)

と の後makesudo make install、以下が返されますUnsupported Protocol

curl --http2 https://http2.akamai.com

curl バージョンは、nghttp2 がサポートされていることを示していません。

curl 7.43.0 (i686-pc-linux-gnu) libcurl/7.38.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API SPNEGO NTLM NTLM_WB SSL libz TLS-SRP

次に、OpenSSL 1.0.2 以降が必要であるというhereのアドバイスに従いました。それを /opt/openssl にインストールしたら、次のように再構成しました。

./configure --with-nghttp2=/usr/local --with-ssl=/opt/openssl/lib

と の後makesudo make installすべての問題は同じままです。奇妙なことに、curl --versionOpenSSL/1.0.1f はまだアップグレードされていないため、上記と同じ情報が返されます。

オプションを正常に使用できるようにするためのヘルプは大--http2歓迎です。

4

3 に答える 3

6

少なくとも実行時には、適切なバージョンの curl とリンクしていないようです。これが出力 libcurl/7.38.0 の意味です。私のものは、より高いバージョン番号を持っています。試す

LD_LIBRARY_PATH=/usr/local/lib curl <whatever> 

あなたの命令として。または、念のため:

ldd `which curl` 

リストに表示される依存関係に注意してください。

于 2015-06-25T14:08:13.820 に答える