Apollo学习(一): git clone的坑

万事开头难,记录一下初探Apollo的尴尬,今天花了一天的时间做了这么一件事情:把Apollo克隆下来。
按理说,不就是一行命令的事吗?然而,啪啪啪脸真疼。

问题1 fatal: The remote end hung up unexpectedly

执行完git clone https://github.com/ApolloAuto/apollo,下载一段时间后提示:

Cloning into 'apollo'...
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
fatal: The remote end hung up unexpectedly3.20 MiB | 291.00 KiB/s   
fatal: early EOF
fatal: index-pack failed

每次都是这个错误,之前也曾尝试未果。于是直接下载的zip压缩包,将就着看看代码。但是通过zip压缩包下载的不包含git信息,无法查看commit和分支,也不能用git管理,看代码是很不方便的。
开始解决这个问题,其问题关键词是 hung up unexpected

搜索发现是git缓冲太小了,于是尝试了这个回答下评论说解决了他们问题的3个方法:

  1. git config --global http.postBuffer 1048576000
  2. git config --global http.sslVerify false
    git config --global http.postBuffer 1048576000
  3. apt install gnutls-bin

以及这里面的一个方法:
git config --global http.postBuffer 500M
git config --global http.maxRequestBuffer 100M
git config --global core.compression 0

一顿操作之后 ,不知道是其中哪一个有效了。因为上面问题提示已经变成问题2了,但我好长时间都没有注意到,所以浪费了好多时间搜索原来的问题上面。

问题2 The TLS connection was non-properly terminated

详细报错如下:

error: RPC failed; curl 56 GnuTLS recv error (-110): The TLS connection was non-properly terminated.

然后在知乎上看到了这个方法,大喜过望,急忙尝试。但是在第8步遇到了问题。
编译和构建安装包: sudo dpkg-buildpackage -rfakeroot -b
提示

dpkg-genchanges: binary-only upload (no source code included)
 dpkg-source --after-build git-2.7.4
dpkg-buildpackage: binary-only upload (no source included)
 signfile git_2.7.4-0ubuntu1.7_amd64.changes
gpg: skipped "Marc Deslauriers <marc.deslauriers@ubuntu.com>": No secret key
gpg: dpkg-sign.w8aj118V/git_2.7.4-0ubuntu1.7_amd64.changes: clearsign failed: No secret key
dpkg-buildpackage: error: failed to sign .changes file

问题3 error: failed to sign .changes file

这个链接,找到了解决办法:在命令之后加上-uc -us
sudo dpkg-buildpackage -rfakeroot -b -uc -us

看了一下dpkg-buildpackage手册,感觉能对上上面的报错提醒,心中暗喜。

 -us    Do not sign the source package.
 -uc    Do not sign the .changes file.

果然这次编译就成功了,提示如下,没有最后的error了

dpkg-gencontrol: warning: -isp is deprecated; it is without effect
dpkg-deb: building package 'git-core' in '../git-core_2.7.4-0ubuntu1.7_all.deb'.
 dpkg-genchanges -b >../git_2.7.4-0ubuntu1.7_amd64.changes
dpkg-genchanges: binary-only upload (no source code included)
 dpkg-source --after-build git-2.7.4
dpkg-buildpackage: binary-only upload (no source included)

但执行第9步sudo dpkg -i git_2.17.1-1ubuntu0.4_amd64.deb后,不知道成功了没有,因为提示太少了只有下面这几行。因为上一次第8步编译失败,强行执行第9步的时候,也是这个提示。此时内心仍然将信将疑。

sudo dpkg -i git_2.7.4-0ubuntu1.7_amd64.deb 
(Reading database ... 332727 files and directories currently installed.)
Preparing to unpack git_2.7.4-0ubuntu1.7_amd64.deb ...
Unpacking git (1:2.7.4-0ubuntu1.7) over (1:2.7.4-0ubuntu1.7) ...
Setting up git (1:2.7.4-0ubuntu1.7) ...

最后

重新git clone https://github.com/ApolloAuto/apollo.git
吃了个泡面,回来一看,竟然下载下来了!!!!!这一天花费也算值了!

其他无效尝试:

  1. 安装git-lfs,使用git-lfs下载阿波罗,后面突然发现Apollo 3.5已经retire了这种方法。。。细思极恐,万一没发现这个,自己岂不是一直成功不了了。。。

  2. 搜索怎么从download下来的zip中恢复git的信息,然而最后放弃了,没搞明白

  3. 尝试用ssh方式下载 git clone git@github.com:ApolloAuto/apollo.git,但是直接就提示key不对,不懂也不想花时间看,最后放弃了。

  4. 使用–depth git clone https://github.com/ApolloAuto/apollo.git --depth 1,尝试了几次,放弃了

总结

成功的道路真TM曲折,主要是对未知的恐惧,不知道问题出在哪里所以一筹莫展。 这才仅仅是个开头下载代码…后面还有编译,跑通,看源码…
不过,此过程也暴露了自己的几个问题:

  1. git 还是不熟悉,git本地和远端的关系,包括协议相关问题
  2. 英文阅读太烂,在stackoverflow的解决办法,简单一点的还好,太长的自己就懒得看了
  3. Linux不熟,包括apt-get怎么用,dpkg怎么用,source list有什么作用,怎么改其中的东西
  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值