当我尝试$ brew update
时,我收到错误:
error: Protocol https not supported or disabled in libcurl while accessing https://github.com/mxcl/homebrew/info/refs?service=git-upload-pack
然而,当我$ curl --version
时,我看到了:
curl 7.21.4 (x86_64-apple-darwin12.2.0) libcurl/7.21.4 OpenSSL/0.9.8y zlib/1.2.5 libidn/1.20
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: IDN IPv6 Largefile NTLM SSL libz
除非我遗漏了什么,否则对我来说这看起来不错。请注意,https
列在协议列表中。
$ which curl
会产生可疑的回复:
/usr/local/php5/bin/curl
嗯...也许brew
正在使用不同的curl
(就像/usr/bin/curl
处的$ /usr/bin/curl --version
。我们来看看:
curl 7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate IPv6 Largefile NTLM NTLM_WB SSL libz
curl
好吧,它显然是https
的不同安装,但它也在协议列表中列出https
,并且也有OpenSSL信息。
顺便说一句:如果我尝试在我的计算机上使用git
个网址与任何curl
个回复网站,我会收到同样的错误。
问题:
brew
正在使用的https
的路径?libcurl
中启用对libcurl.4.dylib
的支持? 更新:我可以通过以下deltheil方法确定git
(和brew
)正在使用/usr/lib/libcurl.4.dylib (compatibility version 6.0.0, current version 6.1.0)
的路径。路径是:
$ brew install curl --with-libssh2
所以我尝试了这个:
/usr/local
幸运的是,curl可以在非SSL URI上使用,所以它实际上是insstall。它没有符号链接到$ cd /usr/lib
$ mv libcurl.4.dylib libcurl.4.dylib.bk
$ ln -s /usr/local/Cellar/curl/7.30.0/lib/libcurl.4.dylib libcurl.4.dylib
$ brew update
,但这对我很好(我认为)。所以我这样做了:
error: Protocol https not supported or disabled in libcurl while accessing https://github.com/mxcl/homebrew/info/refs?service=git-upload-pack
但它仍然给我这个错误:
https
所以现在问题专门变成:如何在libcurl
中启用对{{1}}的支持?
答案 0 :(得分:6)
如何确定brew正在使用的卷曲路径?
Homebrew使用/usr/bin/curl
,即Mac OS X附带的版本,正如您所见here。
话虽如此,正如您所说,您的问题可能与与git
关联并用于http://
和https://
的libcurl版本有关。
执行which git
以确定您使用的版本(我的/usr/local
下已安装)。
然后扫描使用的共享库:
$ otool -L /usr/local/git/libexec/git-core/git-http-push | grep curl
/usr/lib/libcurl.4.dylib
将/usr/local/
替换为与您的git
对应的安装目录。
由于git
执行程序使用的libcurl版本缺少HTTPS支持,因此会告诉您这个版本是什么以及它的安装位置。
答案 1 :(得分:2)
这对我有用:
重新安装curl并使用以下命令安装它(解压后):
$ ./configure --with-darwinssl
$ make
$ make test
$ sudo make install
当您运行命令“curl --version”时,您会注意到https协议现在位于“协议”下。
遇到卷曲问题时可以引用的有用网站:https://curl.haxx.se/docs/install.html
答案 2 :(得分:0)
我在OSX上遇到过这个问题。问题是usr / local / bin中的重复curl和curl.config文件与usr / bin中的相同两个文件冲突。我删除了本地/ bin中的第一个集合,然后终端工作。