20

当我尝试时,$ 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(比如 at 的那个/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协议列表中列出,并且那里也有 OpenSSL 信息。

顺便说一句:如果我尝试在我的机器上使用带有任何 repo的httpsURL,我会得到同样的错误。git

问题:

  1. 如何确定正在使用的curl路径brew
  2. 如何启用对httpsin 的支持libcurl

更新:我能够通过以下 deltheil 的方法来确定(和)正在使用的libcurl.4.dylib路径gitbrew路径是:

/usr/lib/libcurl.4.dylib (compatibility version 6.0.0, current version 6.1.0)

所以我尝试了这个:

$ brew install curl --with-libssh2

幸运的是 curl 在非 SSL URI 上可用,所以它确实安装了。它没有符号链接到/usr/local,但这对我来说很好(我认为)。所以我这样做了:

$ 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

所以现在问题完全变成了:如何启用对httpsin 的支持libcurl

4

3 回答 3

6

如何确定 brew 使用的 curl 的路径?

Homebrew 使用/usr/bin/curl,即 Mac OS X 附带的版本,如您在此处看到的。

话虽如此,正如您所说,您的问题可能与与 and 链接git并用于http://and的 libcurl 版本有关https://

执行 awhich git以确定您正在使用哪个版本(我的安装在 下/usr/local)。

然后扫描使用的共享库如下:

$ otool -L /usr/local/git/libexec/git-core/git-http-push | grep curl
/usr/lib/libcurl.4.dylib

替换/usr/local/为与您的git.

由于您的gitexec 使用的 libcurl 版本缺少 HTTPS 支持,这将告诉您此版本是什么以及它的安装位置。

于 2013-09-27T08:18:07.680 回答
2

这对我有用:

重新安装 curl 并使用以下命令安装它(解压后):

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

当您运行命令“curl --version”时,您会注意到 https 协议现在出现在“protocols”下。

如果您遇到 curl 问题,这是一个有用的网站:https ://curl.haxx.se/docs/install.html

于 2017-07-20T20:36:07.580 回答
1

我在 OSX 上遇到了这个问题。问题是 usr/local/bin 中重复的 curl 和 curl.config 文件与 usr/bin 中的相同两个文件冲突。我删除了 local/bin 中的第一组,之后终端开始工作。

于 2016-06-15T05:21:57.843 回答