使用 Git 的 libcurl 中不支持或禁用协议 https

Posted

技术标签:

【中文标题】使用 Git 的 libcurl 中不支持或禁用协议 https【英文标题】:Protocol https not supported or disabled in libcurl using Git 【发布时间】:2013-03-11 07:05:29 【问题描述】:

我有几个 github 存储库,它们在过去几个月里运行良好。 但是,几天前我在尝试推送时开始遇到一个奇怪的错误 并拉动:

错误:libcurl 中不支持或禁用协议 https 访问 https: ... 致命:HTTP 请求失败

我没有更改任何我知道的内容,所以不确定 错误来自哪里。提前致谢。

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

对我来说同样的问题。这是否已向 pd 开发人员报告? 它是 2016 年,所以是时候添加“我也是!”,在我的例子中是记事本++【参考方案2】:

第一个答案是正确的,但在我的情况下它不是 PureData,我什至找不到哪个程序有冲突。所以我在C盘搜索了libcurl.dll,从SysWOW64文件夹中剪切出来,粘贴到桌面上。查看它的详细信息,它是由谷歌上的一些“深圳 moyea 软件”引导我到我的 lil 兄弟安装后转换的 youtube。无论如何删除文件使 git 再次工作。

【讨论】:

同样的问题,从 SysWOW64 文件夹中移动 libcurl-4.dll 解决了我的问题。【参考方案3】:

也许您安装了不同的 libcurl.dll 版本,其中一个版本覆盖了 github 版本(支持 https)。

我不知道你的操作系统是什么,但在 Windows 中你必须更改 PATH 设置,所以它会指向正确的 libcurl.dll(在 c:\ 上进行 libcurl 搜索以了解 github 的位置) .

在我的例子中,是纯数据安装与 github 上的 libcurl.dll 搞砸了。

希望对你有帮助。

【讨论】:

【参考方案4】:

我也有同样的行为。我不知道为什么,但我通过将 Repo orign 更改为 ssh/git 协议解决了这个问题

【讨论】:

【参考方案5】:

如果有人无法解决 libcurl 问题,您可以应用此修复程序

    编辑您的 repo 目录下的 .git/config 文件 在[remote "origin"] 部分下找到url= 条目 从 github 为您的存储库获取 ssh url 并替换 config file 中的 https url 保存配置文件并关闭它。现在你可以使用 git。

【讨论】:

【参考方案6】:

我在 macos 和 homebrew 上遇到了同样的错误。 当我尝试-> git clone ... 回报是:

致命:无法访问“https://github.com/....”:libcurl 中不支持或禁用协议 https

我做到了:

rm '/usr/local/bin/git'

正如上面提到的:

brew link git    

然后我又做了一个 git clone,出现了一个钥匙串弹出框并点击接受。然后它工作了。

【讨论】:

【参考方案7】:

通过从路径 C:\Program Files\Git\bin 中删除“git”解决了问题

最好的问候。

【讨论】:

【参考方案8】:

在 Windows (10) 中我遇到了同样的问题,在我的系统中,即使 http 也不起作用,我修复了这个为 windows 安装 OpenSSL 的问题。我从here获得的

希望这将有助于未来的访问者直接解决问题。

【讨论】:

【参考方案9】:

也许你搞砸了 LD_LIBRARY_PATH

我构建了一个包,它在我的~/.bash_profile 中重新指向了环境变量 LD_LIBRARY_PATH。这打破了我的 git;由于 gits 对 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

【讨论】:

【参考方案10】:

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

【讨论】:

以上是关于使用 Git 的 libcurl 中不支持或禁用协议 https的主要内容,如果未能解决你的问题,请参考以下文章

libcurl 中不支持或禁用协议“curl https”

libcurl 中不支持或禁用协议“https”-如何检查当前版本的 libcurl [关闭]

Cocoapods在libcurl中未支持或禁用“https”

Linux下使用libcurl实现FTP单个文件上传下载功能

试图编译 git 但在 linux 中找不到 libcurl

Ubuntu+NDK编译openssl(为了Android上使用libcurl且支持HTTPS协议)