当前位置:   article > 正文

OAI 4G搭建(二):git clone遇到的问题_error: rpc failed; curl 56 gnutls recv error (-9):

error: rpc failed; curl 56 gnutls recv error (-9): a tls packet with unexpec

输入git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git报错

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

查找相关资料, 尝试了以下方法:

  1. 修改git配置:
    可以使用下面的代码查看自己的git配置
git config -l 
  • 1

可能是因为项目太大引发该错误, 因此需要增大缓存区

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

compression 是压缩的意思,从 clone 的终端输出就知道,服务器会压缩目标文件,然后传输到客户端,客户端再解压。取值为 [-1, 9],-1 以 zlib 为默认压缩库,0 表示不进行压缩,1…9 是压缩速度与最终获得文件大小的不同程度的权衡,数字越大,压缩越慢,当然得到的文件会越小. 我后来又把compression设为-1/
此外, 还要增大MTU值.

ifconfig # 查看网络信息
sudo ifconfig eno1 mtu 9000 # 设置当前网络eno1的mtu为9000(最大只能设置到9000) 
  • 1
  • 2

对我无用

  1. 更换协议
    不使用https协议, 而使用ssh
    sudo git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git
    更换为sudo git clone git://gitlab.eurecom.fr/oai/openairinterface5g.git
    对我无用

  2. 重新编译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
# 我在这一步出现错误error: failed to sign .changes file 
# 在后面再加两个参数-uc -us 即可解决该问题
# 即我运行的是 sudo dpkg-buildpackage -rfakeroot -b -uc -us
# 退回上一级目录,安装编译好的安装包
cd ..
sudo dpkg -i git_2.17.1-1ubuntu0.4_amd64.deb
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

对我无用, 我再次git clone后变成了问题三.

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

前面的操作排列组合, 出现过这样的错误提示, 但是我搜资料发现该问题与问题一解决方法一样, 而且有时候提示该问题, 有时候提示问题一, 就不再展开了.

问题三:error: RPC failed; curl 18 transfer closed with outstanding read data remaining

这个问题的解决方案也有前面说过的增大缓存区和换协议, 这里再介绍几个新的方法:

  1. 寻找github最新网址, 修改hosts配置
    https://blog.csdn.net/qq_17282141/article/details/99671865这个链接中,博主给出了一个终极解决方案, 我还没有尝试

  2. 重新安装git

sudo apt-get purge git # 清除软件包和配置文件
sudo apt-get install git # 安装git
  • 1
  • 2
  1. 更新git版本
    我发现我的git版本是2.7, 官网已经更新到2.30了, 于是乎我更新了git版本试了试.
    下面代码可以查看git版本:
git --version
  • 1

首先添加git软件源:

sudo add-apt-repository ppa:git-core/ppa
  • 1

接着, 更新软件列表, 升级更新git

sudo apt update
sudo apt install -f
sudo apt upgrade
  • 1
  • 2
  • 3

更新到了2.29.0版本.

  1. 浅克隆
    克隆的时候,先少克隆一些,比如只克隆每个文件只取最近一次提交,不是整个历史版本.
git clone https://github.com/flutter/flutter.git --depth 1
  • 1

之后再进入目录下, 更新

git fetch --unshallow
  • 1

这是我离成功最近的一次, 我最后一次看的时候到了86%, 吃饭回来看到它又失败了. 但是不用全部, 我只用浅克隆的也可以做实验.

  1. 浅克隆+克隆其他分支
    浅克隆默认克隆的是master分支, 在编译步骤总是有很多错误. 我发现OAI有版本, 心想应该更完整吧, 于是选择了v1.2.0, 我也没细看各版本的区别, 随便试了一个, 编译很成功, 于是乎这个也记录下来吧.
git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git --branch v1.2.0 --depth 1
  • 1

克隆后进入/openairinterface5g文件夹, 切换到该分支, 再进行编译.

cd openairinterface5g
git checkout v1.2.0
source oaienv
... # 其他编译步骤
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/726235
推荐阅读
相关标签
  

闽ICP备14008679号