在Ubuntu上使用git clone失败问题解决

举报
如歌 发表于 2020/02/19 18:02:12 2020/02/19
【摘要】 在Ubuntu上使用git clone失败的问题解决

最近需要查看一些开源项目源码,在通过HTTPS方式从githubclone代码的时候发现一些问题,例如:运行

Git clone https://github.com/repoA/projectAclone失败,报告下面几种错误:

image.png

或者:

error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.

或者:

fatal: unable to access ‘https://github.com/repoA/projectA/’: gnutls_handshake() failed: Error in the pull function.

通过修改git配置参数http.sslVerifyhttp.postBuffer并不能修复问题。

比较奇怪的是,这个问题只在Ubuntu OS上出现,分配尝试了如下版本:

Ubuntu 16.04git 2.7.4
Ubuntu 18.04git 2.17.1
Ubuntu 19.10git 2.20.1

问题应该发生在gnutls模块上。通过重新构建git安装包,替换gnutlsopenssl可以修改上述问题。修改步骤如下:

1、  安装软件包依赖组件:# apt-get install build-essential fakeroot dpkg-dev

2、  创建子路径并进入:# mkdir git-openssl && cd git-openssl

3、  获取git源码:# apt-get source git

4、  获取git组件编译依赖资源:# apt-get build-dep git

5、  安装libcurl4-openssl-dev# apt-get install libcurl4-openssl-dev

6、  修改git安装包配置文件

        a.       修改./debian/control文件,修改“Build-Depenssection,替换libcurl4-gnutls-devlincurl4-openssl-dev,如图:

image.png

        b.       修改./debian/rules文件,删除TEST=test,这样可以大大缩短git安装包构建时间

7、  构建git安装包:# dpkg-buildpackage -rfakeroot –b [-uc -us]

8、  等待几分钟,安装新构建出来的git安装包,问题解决:

# sudo dpkg -i git_2.17.0-1ubuntu1_amd64.deb

再次运行命令,git clone https://github.com/repoA/projectA,正常clone源码。

这个问题在上述Ubuntu版本验证通过。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。