使用 Git 时,libcurl 不支持或禁用了 HTTPS 协议。

10

我有几个 Github 存储库,在过去几个月里它们一直工作正常。
然而,几天前我尝试进行推送和拉取时出现了一个奇怪的错误:

错误:在访问 https 时,协议 https 不受支持或被禁用 libcurl ... 致命错误:HTTP 请求失败。

我没有更改任何我知道的东西,所以不确定错误来自哪里。先感谢您的帮助。

10个回答

9

如果您安装了Pure Data,可能会出现此错误。这里描述了Pure Data和git之间的冲突。 Pure Data安装程序将其自己的libcurl-4.dll放置在system32文件夹中。

即使您没有安装Pure Data,您的库路径中可能仍然存在另一个libcurl-4.dll,它会在已安装的git位置之前被加载。


我也遇到了同样的问题。这个问题已经向PD开发人员报告了吗? - endolith
现在是2016年,是时候加入“我也来了”的行列了!对于我来说,这个选择是Notepad++。 - jtmcdole

4

第一个答案是正确的,尽管在我的情况下不是 PureData,并且我甚至找不到哪个程序出现了冲突。所以我在 C 盘中搜索了 libcurl.dll,在 SysWOW64 文件夹中将其剪切并粘贴到桌面上。查看其详细信息后,发现它是由某个“深圳万能神州软件”制作的,安装我的小兄弟在 YouTube 转换器上搜索到。无论如何,删除该文件使 git 又可以正常工作了。


我也遇到了同样的问题,将libcurl-4.dll文件从SysWOW64文件夹移动到其他位置解决了我的问题。 - gaborous

1
也许你安装了不同版本的libcurl.dll,其中一个正在覆盖支持https的github版本。
我不知道你的操作系统是什么,但在Windows中,你需要更改PATH设置,以便它指向正确的libcurl.dll(在c:\上搜索libcurl以了解github版本的位置)。
在我的情况下,是Pure Data安装程序搞乱了来自github的libcurl.dll。
希望能有所帮助。

0
通过从路径 C:\Program Files\Git\bin 中移除 "git" 来解决了这个问题。
最好的问候。

0

如果有人无法解决libcurl问题,可以尝试以下修复方法:

  1. 编辑存储库目录下的.git/config文件
  2. [remote "origin"]部分中找到url=条目
  3. 从Github获取您存储库的ssh url,并将其替换config文件中的https url
  4. 保存配置文件并关闭。现在您可以使用Git了。

0
在Windows 10中,我遇到了同样的问题,在我的系统中甚至http也无法工作,我通过安装Windows版的OpenSSL来解决这个问题。我从这里获取了它。
希望这能帮助未来的访问者以简单明了的方式解决这个问题。

0
如果在Windows中发生此问题,请以管理员身份启动Git终端。

0

我遇到了同样的问题。不知道为什么,但我通过将 Repo orign 更改为 ssh/git 协议来解决了它。


0

可能是你弄乱了LD_LIBRARY_PATH

我编译了一个软件包,重新指定了环境变量LD_LIBRARY_PATH在我的~/.bash_profile中。这破坏了我的git;由于git依赖于curl,我遇到了上述的libcurl错误:

[user@host folder]$ git push
fatal: unable to access 'https://x-access-token:67bada156da713b46d4d64fe37309cb9c5856717@github.com/project/repository.git/': Protocol https not supported or disabled in libcurl

解决方案是在使用别名运行git时修复LD_LIBRARY_PATH:

# Fix problem with libcurl
alias git="LD_LIBRARY_PATH=/usr/local/lib git"

export LD_LIBRARY_PATH=/opt/project/lib

然后...

[user@host folder]$ source ~/.bash_profile
[user@host folder]$ git push
Counting objects: 24, done.
Delta compression using up to 32 threads.
Compressing objects: 100% (9/9), done.
Writing objects: 100% (13/13), 1.57 KiB | 0 bytes/s, done.
Total 13 (delta 5), reused 0 (delta 0)
remote: Resolving deltas: 100% (5/5), completed with 5 local objects.
To https://x-access-token:67bada156da713b46d4d64fe37309cb9c5856717@github.com/project/repository.git/
   676a842..eb37cb9  enhance-0052 -> enhance-0052

0

我在macOS和Homebrew上遇到了同样的错误。 当我尝试使用git clone ...时, 返回的结果是:

致命错误:无法访问 'https://github.com/....':协议https在libcurl中不受支持或已禁用

我做了以下操作:

rm '/usr/local/bin/git'

正如所提到的:

brew link git    

然后我再次进行了git克隆,出现了一个钥匙串弹出框,我点击了接受。然后它就可以工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接