我正在尝试在Ubuntu 11.04上安装Rails环境。当我启动命令rvm install 1.9.2 --with-openssl-dir=/usr/local时,收到以下错误:
rvm install 1.9.2 --with-openssl-dir=/usr/local
curl : (1) Protocol https not supported or disabled in libcurl
如何解决这个问题?
libcurl常见问题解答“libcurl中不支持或禁用协议xxx”中特别提到了这一点。
为了让你开心,我在这里也嵌入了解释:
当传递URL给curl使用时,它可能会响应 不支持或禁用特定协议。特殊的方式 这个错误信息是短语,因为curl没有生成 内部区分某个特定协议是否为非协议 支持(即从未得到任何代码添加,知道如何讲 协议)或者显式禁用它。Curl只能构建到 支持一组给定的协议,其余的协议将被禁用 或者不支持。< / p > 请注意,如果您传递了拼写错误的参数,也会发生此错误 协议部分如“htpt://example.com”或不太明显的 如果您在协议部分前面加上空格,如“ http://example.com/”。< / p >
当传递URL给curl使用时,它可能会响应 不支持或禁用特定协议。特殊的方式 这个错误信息是短语,因为curl没有生成 内部区分某个特定协议是否为非协议 支持(即从未得到任何代码添加,知道如何讲 协议)或者显式禁用它。Curl只能构建到 支持一组给定的协议,其余的协议将被禁用 或者不支持。< / p >
请注意,如果您传递了拼写错误的参数,也会发生此错误 协议部分如“htpt://example.com”或不太明显的 如果您在协议部分前面加上空格,如“ http://example.com/”。< / p >
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)
源
得到答案在这里 for 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://"
https
" https://"
"https://"
在https网站上使用curl时得到了相同的错误
curl https://api.dis...
正如ganesh所指出的,这是因为我的curl版本没有启用ssl。我回去下载了带有SSL的版本,效果很好。
我只是通过将'http://webname...'改为"http://webname..."来解决它
'http://webname...'
"http://webname..."
注意这句话。应该是double (")而不是single (')。
"
'
我刚刚用指向openssl 1.0.2g库文件夹和包含文件夹的配置选项重新编译了curl,我仍然得到了这条消息。当我对curl做ldd时,它没有显示它使用libcrypt.so或libssl.so,所以我假设这必须意味着即使make和make install成功而没有错误,然而curl不支持HTTPS ?配置和make如下:
libcrypt.so
libssl.so
make
make install
./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应该会失败,并出现无法找到库的错误。
libssl.so.1
/local/scratch/PACKAGES/local/lib
--with-ssl
用flag -with-darwinssl解决了这个问题
转到带有curl源代码的文件夹
在这里下载https://curl.haxx.se/download.html
sudo ./configure --with-darwinssl make make install
重新启动控制台就完成了!
在我的例子中,libcurl首先不支持HTTPS协议。为了找出哪些协议被支持,哪些协议不被支持,我使用命令检查了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
curl 7.50.3 (x86_64-apple-darwin15.6.0) libcurl/7.50.3 SecureTransport zlib/1.2.5
恰好不支持HTTPS协议。
然后我重新安装curl,并使用以下命令安装它(在解包后):
< p >。在mac中启用SSL通信 使 做测试 Sudo make install
经过几分钟的工作,问题解决了!
然后我重新运行curl version命令,它显示:
HTTPS协议出现了!
https://curl.haxx.se/docs/install.html
在url中指定协议可能会解决您的问题。
我有一个类似的问题(当使用curl php客户端):
我传递的是domain.com而不是sftp://domain.com,这导致了这个令人困惑的错误:
libcurl中不支持或禁用协议“http”,花费了0秒。
我的问题是由于没有显示UTF符号引起的。我从浏览器复制链接(在我的情况下,它是nginx跟踪),并在剪贴板中得到以下内容:
$ echo -n "https://sk.ee/upload/files/ESTEID-SK_2015.pem.crt" | hexdump -C 00000000 e2 80 8b 68 74 74 70 73 3a 2f 2f 73 6b 2e 65 65 |...https://sk.ee| 00000010 2f 75 70 6c 6f 61 64 2f 66 69 6c 65 73 2f 45 53 |/upload/files/ES| 00000020 54 45 49 44 2d 53 4b 5f 32 30 31 35 2e 70 65 6d |TEID-SK_2015.pem| 00000030 2e 63 72 74 |.crt|
问题出现在0xe2 0x80 0x8b序列中,它位于https之前。这个序列是在utf - 8中编码的零宽细木工。
0xe2 0x80 0x8b
“
而且
将第一个双引号改为第二个对我有用,下面是示例curl:
curl -X PUT -u xxx:xxx -T test.txt "https://test.com/test/test.txt"