使用 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 中不支持或禁用协议“https”-如何检查当前版本的 libcurl [关闭]
Cocoapods在libcurl中未支持或禁用“https”
Linux下使用libcurl实现FTP单个文件上传下载功能