最近学习《Linux内核设计与实现》,开篇就要使用git在https://www.kernel.org/下载Linux内核源码,虽然可以下载压缩包解压使用,但是为了保持与书上的一致性,还是采用git方式
环境:
VirtualBox虚拟机Ubuntu 20.04 LTS
1.因为一些众所周知的原因,为了获得一个良好的git下载速度,需要使用代理,推荐使用v 2 r a y方式,具体应用的安装与配置请参考下载与配置 Qv2ray 手册
2.配置好v 2 r a y后,还要用proxychains开启全局代理,这样你的浏览器和终端都可以突破限制。
3.找到最新的Linux内核git地址,一般下载的都是mainlne版本,在https://www.kernel.org/,点击mainline那一行的browse
进入下一个页面后选择summary
最底部就可以看到clone地址,一般推荐使用第一二种都行。
4.在终端进入一般Linux内核存放的地址/usr/src,运行命令 git config --global core.compression -1
修改压缩模式
5.运行depth这个命令下载最近一次提交sudo proxychains git clone --depth 1 url
,其中url就要替换成我们第3步找到的clone地址,下载完成后可以看到多了一个Linux文件夹,是不是瞬间信心暴涨?
6.进入刚clone到本地的Linux文件夹,获取完整库sudo proxychains git fetch --unshallow
7.最后用pull下拉远程分支并与本地分支合并sudo proxychains git pull --all
原因分析:
1.如果你git速度只有几b,那么一般说明你被墙了,这个时候你要科学突破,或者换一个节点。
2.像这种下载用git总失败,就是因为你要下载的东西太大了,这种时候就要考虑把你的git缓存加大命令如下:
git init
git config http.postBuffer 524288000
3.因为这个内核比较大,所以如果你的虚拟机存储空间不够用了,你还要自己用GParted扩大你的存储空间。推荐阅读这篇博文[linux如何为Virtualbox虚拟硬盘扩容(转载)]
(https://www.cnblogs.com/xueweihan/p/5923937.html)
4.从第4步开始,你就要一直让Qvray处于运行状态,这样你运行命令下载文件才能速度不受到限制。
参考博文:git clone的时候遭遇fatal: early EOF fatal: index-pack failed解决办法
error: index-pack died of signal fatal: index-pack failed
Git 遇到了 early EOF index-pack failed 问题