最近學習《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 問題