Ubuntu 11.04にRails環境をインストールしようとしています。コマンドrvm install 1.9.2 --with-openssl-dir=/usr/local
を起動すると、次のエラーが表示されます。
curl : (1) Protocol https not supported or disabled in libcurl
これはどのように解決できますか?
答えが得られました HERE Windowsの場合、次のように書かれています:
curl -XPUT 'http://localhost:9200/api/twittervnext/Tweet'
おっと、最初に試してみて、すでにエラーが発生しています:
curl: (1) Protocol 'http not supported or disabled in libcurl
このエラーの原因は一種の愚かさです。コマンドに一重引用符を使用しているとき、Windowsはそれを気にしません。したがって、正しいコマンドは次のとおりです。
curl –XPUT "http://localhost:9200/api/twittervnext/Tweet"
私はこの問題にぶつかり、問題を引き起こしていたhttps
の前にスペースがあることがわかりました。 " https://"
vs "https://"
Ruby用のrvmをインストールしようとしたときに同じ問題が発生しました。解決策を見つけた:ルートのダウンロードフォルダにカール(tar)を抽出した後。
cd /root/Downloads/curl # step-1
./configure --with-ssl # step-2
make # step-3
make install # step-4 (if not root, use Sudo before command)
すでに非常に多くの回答があるように見えますが、私が直面した問題は二重引用符でした。次の間に違いがあります。
“
そして
"
1番目の二重引用符を2番目の二重引用符に変更すると、次のサンプルカールになります。
curl -X PUT -u xxx:xxx -T test.txt "https://test.com/test/test.txt"
これは、libcurl FAQエントリ「 libcurl でサポートされていないか無効にされているプロトコルxxx」で具体的に説明されています。
あなたの喜びのために、私もここに説明を埋め込みます:
使用するcurlにURLを渡すと、特定のプロトコルがサポートされていないか無効になっていると応答する場合があります。このエラーメッセージの特定の言い方は、curlは特定のプロトコルがサポートされていない(つまり、そのプロトコルの読み方を知っているコードを追加したことがない)か、明示的に無効にされたかを内部で区別しないためです。 curlは、特定のプロトコルセットのみをサポートするように構築でき、残りは無効になるか、サポートされません。
このエラーは、「htpt://example.com」のように間違った綴りのプロトコルパーツを渡す場合、またはプロトコルパーツの前に「 http://example.com/ 」。
フラグ--with-darwinsslでこの問題を解決しました
Curlソースコードがあるフォルダーに移動する
ここからダウンロード https://curl.haxx.se/download.html
Sudo ./configure --with-darwinssl
make
make install
コンソールを再起動すると完了です!
私の場合、最初はHTTPSプロトコルはlibcurlでサポートされていませんでした。サポートされているプロトコルとサポートされていないプロトコルを確認するには、次のコマンドを使用してcurlバージョンを確認しました。
curl --version
curl 7.50.3 (x86_64-Apple-darwin15.6.0) libcurl/7.50.3 SecureTransport zlib/1.2.5
プロトコル:dictファイルftp ftps Gopher http imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp機能:IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets
httpsプロトコルはたまたまサポートされていません。
次に、curlを再インストールし、次のコマンドを使用してインストールしました(解凍後)。
./configure --with-darwinssl(MacでSSL通信を有効にする)make make test Sudo make install
そして、数分の作業の後、問題は解決しました!
次に、curl versionコマンドを再実行すると、次のように表示されました。
curl 7.50.3 (x86_64-Apple-darwin15.6.0) libcurl/7.50.3 SecureTransport zlib/1.2.5
プロトコル:dictファイルftp ftps Gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp機能:IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets
HTTPSプロトコルが登場しました!
最後に、カールの問題が発生したときに参照する便利なサイト。 https://curl.haxx.se/docs/install.html
'http://webname...'
を"http://webname..."
に変更するだけで解決します
引用に注意してください。シングル("
)ではなく、ダブル('
)である必要があります。
次のようなhttpsサイトでcurlを使用すると同じエラーが発生しました
curl https://api.dis...
ganesh で指摘されているように、それは私のバージョンのcurlがSSLに対応していなかったためです。戻って、sslを使用してバージョンをダウンロードし、正常に機能しました。
私の問題は、表示されていないUTFシンボルによって引き起こされました。 nginx track からリンクをコピーして、クリップボードに次のものを取得しました。
0x00000000: e2 80 8b 68 74 74 70 73 3a 2f 2f 73 6b 2e 65 65 2f 75 70 6c 6f 61 64 2f 66 69 6c 65 73 2f 45 53 ...https://sk.ee/upload/files/ES
0x00000020: 54 45 49 44 2d 53 4b 5f 32 30 31 35 2e 70 65 6d 2e 63 72 74 TEID-SK_2015.pem.crt
問題のシンボルは0xe2 0x80 0x8b
ZERO WIDTH JOINER で、httpsの前にあります。
Openssl 1.0.2gライブラリフォルダーとインクルードフォルダーを指す設定オプションでcurlを再コンパイルしただけで、このメッセージが表示されます。 curlでlddを実行すると、libcrypt.so
またはlibssl.so
のいずれかを使用することは示されないため、make
およびmake install
はエラー、それにもかかわらずcurlはHTTPSをサポートしていませんか?設定と作成は次のとおりです。
./configure --prefix=/local/scratch/PACKAGES/local --with-ssl=/local/scratch/PACKAGES/local/openssl/openssl-1.0.2g --includedir=/local/scratch/PACKAGES/local/include/openssl/openssl-1.0.2g
make
make test
make install
libssl.so.1
は/local/scratch/PACKAGES/local/lib
にあることに言及する必要があります。 --with-ssl
オプションがそこを指しているのか、opensslインストールがopenssl.cnfファイルを置いたディレクトリを指しているのかは不明です。私は後者を選びました。しかし、前者であると想定されていた場合、makeはライブラリを見つけることができないというエラーで失敗するはずでした。
URL内でプロトコルを指定すると、問題が解決する場合があります。
私は同様の問題を抱えていました(curl phpクライアントを使用している間):
sftp://domain.comの代わりにdomain.comを渡していたため、この混乱するエラーが発生しました。
プロトコル「http」はlibcurlでサポートまたは無効になっていないため、0秒かかりました。