我正在尝试在Ubuntu 11.04上安装Rails环境。当我启动命令rvm install 1.9.2——with-openssl-dir=/usr/local时,收到以下错误:

curl : (1) Protocol https not supported or disabled in libcurl

如何解决这个问题?


当前回答

我遇到了这个问题,原来在https之前有一个空格,导致了这个问题。“Https://”vs“Https://”

其他回答

用flag -with-darwinssl解决了这个问题

转到带有curl源代码的文件夹

请在这里下载https://curl.haxx.se/download.html

sudo ./configure --with-darwinssl
make
make install

重新启动控制台就完成了!

在libcurl常见问题解答条目“libcurl不支持或禁用协议xxx”中特别提到了这一点。

为了让你开心,我在这里也嵌入了解释:

When passing on a URL to curl to use, it may respond that the particular protocol is not supported or disabled. The particular way this error message is phrased is because curl doesn't make a distinction internally of whether a particular protocol is not supported (ie never got any code added that knows how to speak that protocol) or if it was explicitly disabled. curl can be built to only support a given set of protocols, and the rest would then be disabled or not supported. Note that this error will also occur if you pass a wrongly spelled protocol part as in "htpt://example.com" or as in the less evident case if you prefix the protocol part with a space as in " http://example.com/".

我在为ruby安装rvm时遇到了同样的问题。 找到解决方案: 在root的下载文件夹中提取curl (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)

我的问题是由于没有显示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|

问题出现在https之前的0xe2 0x80 0x8b序列中。这个序列是一个用UTF-8编码的零宽度JOINER。

这里有窗户的答案, 上面说:

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"