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

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

最近在 更新openwrt 和运行"./scripts/feeds update -a"时,遇到以下问题。网上找了很多种方法,但是有些可以,有些不行。先做个简单的总结。

1. 问题描述

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

详细信息:

Updating feed 'packages' from 'https://git.openwrt.org/feed/packages.git' ...
remote: Enumerating objects: 85124, done.
remote: Counting objects: 100% (85123/85123), done.
remote: Compressing objects: 100% (34661/34661), done.
error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
failed.
Updating feed 'luci' from 'https://git.openwrt.org/project/luci.git' ...
Already up-to-date.
Create index file './feeds/luci.index' 
[sudo] password for renyinshan: 
Updating feed 'routing' from 'https://git.openwrt.org/feed/routing.git' ...
remote: Enumerating objects: 6835, done.
remote: Counting objects: 100% (6835/6835), done.
remote: Compressing objects: 100% (4477/4477), done.
remote: Total 6664 (delta 2770), reused 4557 (delta 1741)
Receiving objects: 100% (6664/6664), 1.46 MiB | 17.00 KiB/s, done.
Resolving deltas: 100% (2770/2770), completed with 82 local objects.
From https://git.openwrt.org/feed/routing
   08ba5e5..56df2cc  master     -> origin/master
Updating 08ba5e5..56df2cc
Fast-forward
 bird1/Makefile | 4 ++--
 bird2/Makefile | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
Create index file './feeds/routing.index' 
Collecting package info: done
Updating feed 'telephony' from 'https://git.openwrt.org/feed/telephony.git' ...
Already up-to-date.
Create index file './feeds/telephony.index' 

2 解决方法

2.1 方法1:修改git的配置

修改git的配置

git config --global http.postBuffer 524288000 # httpBuffer加大 
git config --global http.maxRequestBuffer 100M
git config --global core.compression 0 # 压缩配置

# 修改配置文件
export GIT_TRACE_PACKET=1
export GIT_TRACE=1
export GIT_CURL_VERBOSE=1

以上配置文件修改,也可以大幅度提升 git 克隆速度

本人亲测,无效

2.2 方法2:修改下载方式-https改为ssh

把’https://git.openwrt.org/feed/packages.git’改为’git://git.openwrt.org/feed/packages.git’,即:

git clone git://git.openwrt.org/feed/packages.git

修改feeds.conf.default配置即可(我只遇到下载packages.git时的错误,所以只改了这个。)

src-git packages git://git.openwrt.org/feed/packages.git
src-git luci https://git.openwrt.org/project/luci.git
src-git routing https://git.openwrt.org/feed/routing.git
src-git telephony https://git.openwrt.org/feed/telephony.git
#src-git video https://github.com/openwrt/video.git
#src-git targets https://github.com/openwrt/targets.git
#src-git management https://github.com/openwrt-management/packages.git
#src-git oldpackages http://git.openwrt.org/packages.git
#src-link custom /usr/src/openwrt/custom-feed

本人亲测,有效

2.3. 方法3:重新编译git并安装

作者描述:
这个问题折腾了我挺长时间,在网上看到很多解决方案,但是百分之九十以上的都是坑,一点用没有,可能是对我来说没有用,最终找到一个靠谱的解决方案,亲测可用,希望减少大家踩坑。

但是本人使用时无效。

链接:https://zhuanlan.zhihu.com/p/53961303

# 首先安装一些必要的环境和依赖
sudo apt-get install build-essential fakeroot dpkg-dev
# 在home路径下创建一个名为git-rectify的路径(路径名不重要,可以为其他名称)
mkdir ~/git-rectify
# 进入路径,获取git的源文件
cd ~/git-rectify
apt-get source git
# 安装依赖
sudo apt-get build-dep git
#  安装libcurl的依赖文件
sudo apt-get install libcurl4-openssl-dev
# 进入目录(原链接中这里有错误,不需要解压步骤)
cd git-2.17.1/
# 修改文件内容,需要修改两个文件
vim ./debian/control    # 把libcurl4-gnutls-dev 修改为 libcurl4-openssl-dev
vim ./debian/rules      # 把TEST=test整行删除
# 编译和构建安装包
sudo dpkg-buildpackage -rfakeroot -b
# 退回上一级目录,安装编译好的安装包
cd ..
sudo dpkg -i git_2.17.1-1ubuntu0.4_amd64.deb

完成以上步骤即可解决error: RPC failed; curl 56 GnuTLS recv error (-110): The TLS connection was non-properly terminated问题。

2.4 方法4:理性等待

因为:
刚刚开始以为是由于GnuTLS的BUG导致的。
当时的解决方法是翻墙出去进行克隆。或者用Windows进行克隆操作。
然而,从最近的新闻来看,更像是遭受了攻击导致的。

本人亲测,有点扯蛋

3. 参考连接:

stackoverflow: git error: RPC failed; curl 56 GnuTLS

git一些报错解决方法[每一项都亲测,保证不踩坑]

GitHub 遭遇有史以来最严重DDoS攻击,黑客想玩票大的?
GnuTLS recv error (-9): A TLS packet with unexpected length was received

error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was received. #14

  • 34
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 30
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值