Ubuntu14下repo的下載及Android原始碼下載
因為repo是google官方用python寫的有關git命令的指令碼,
因此第下載repo之前 首先安裝git
第一步:安裝Git
$sudo apt-get install git-core
第二步:安裝curl
因為要下載工具,android原始碼等,因此得安裝一個下載工具,而Linux中curl是一個利用URL規則在命令列下工作的檔案傳輸工具,可以說是一款很強大的http命令列工具。它支援檔案的上傳和下載,是綜合傳輸工具,但按傳統,習慣稱url為下載工具。
$sudo apt-get install git-cor curl
第三步:建立目錄,用來存放repo檔案
$mkdir ~/android-bin
#建立成功,再換到android-bin目錄
$cd ~/android-bin
第四步:下載repo並修改許可權
#一般可用下面這個命令下載
$curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/android-bin/repo
如果上面這個url不可訪問,我們可以通過下面2種方式來:
. 把url改成:把命令改成:
curl https://storage-googleapis.lug.ustc.edu.cn/git -repo-downloads/repo > ~/android-bin/repo
下載完成後,我們可以通過
$ls -l ~/android-bin/repo
命令來檢視repo的檔案許可權,如果許可權分數不是為777,則我們可以手動將repo的檔案許可權更改為777.
#我們得切換到root身份來修改
$su - root
#切換完成後,再執行下面的命令
$chmod 777 ~/android-bin/repo
第五步:repo初始化以及Android原始碼下載
在進行repo 初始化前,我們得先配置好本地Git的郵箱及使用者名稱,如下:
$git config --global user.email "[email protected]"
$git config --global user.name "yourname"
接下來為Android原始碼建立一個倉庫目錄
#在當前主目錄下建立
$mkdir androidSources
#然後切換至目錄下
$cd androidSources
接下來就正式進入repo init了,
網上有很多映象,有各種說法,但不知為毛,我都沒有成功,我也貼出來,你們可以試下,搞不好你人品好,一下就成功了。
#一種是使用中國科技大學的映象源
$ repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-5.1.1_r4
#還有一種是使用清華大學的映象源
$ repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-5.1.1_r4
以上2種對我都沒用,
都報以下錯誤:
fatal: Cannot get https://gerrit.googlesource.com/Git-repo/clone.bundle
那怎麼辦,還是跟上面下載repo一下,命令列不能下載,那就只能手動下載了。
在翻牆的情況下開啟https://gerrit.googlesource.com/git-repo/clone.bundle
下載clone.bundle到自定義目錄
最後再在上面repo init命令最後加上clone.bundle,如下:
$ repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-5.1.1_r4 --repo-url ~/下載/clone.bundle
奇蹟發生了,成功了。
第六步:開始同步Android原始碼
這是最後一步,開始同步Android原始碼,這個過程比較漫長,我在公司的網速一般,花了半天時間,切忌中間不能手動去crtl + c,如果你取消了,那前面 下的都白下了,而如果是它自己中途斷了,則再重新執行repo sync命令,它會接著下。
$ repo sync
如圖:
當然這是順利的情況,也有運氣不好的同學,在執行repo sync會遇到以下錯誤:
fatal: '../platform/abi/cpp.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
error: Cannot fetch platform/abi/cpp
這是什麼意思呢?意思是沒有找到git倉庫,那麼這個倉庫地址是在哪呢?
在我們上面建立的儲存android原始碼的目錄下的一個.repo隱藏目錄裡面,
按如下操作:
#切換到.repo目錄
$cd .repo
#用gedit開啟manifest.xml檔案
$gedit manifest.xml
#找到fetch標籤,把值替換掉
如:fetch="git://Android.git.linaro.org/"
以上做完後,再次執行repo sync,就可以下載了。