(一)
1盆驹、問題描述
在下載Android 的open source 的時候,repo sync 老是會斷掉辫封,然后我們又不能老是盯著它倦微,導(dǎo)致下載Android代碼的時間長雅倒,而且下得比較痛苦。
那有沒有辦法讓repo sync斷掉的時候再自己repo sync呢劣欢?當(dāng)然有辦法了,寫個簡單的shell腳本就可以ko它了校套。
2牧抵、腳本
腳本內(nèi)容如下:
#!/bin/bash
#FileName repo_sync.sh
PATH=~/bin:$PATH
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-7.1.1_r28
repo sync
while [ $? = 1 ]; do
echo "================sync failed, re-sync again ====="
sleep 3
repo sync
done
``
然后添加可執(zhí)行權(quán)限并執(zhí)行:
命令行創(chuàng)建文件:sudo mkdir repo_sync.sh
sudo vi repo_sync
將腳本內(nèi)容復(fù)制到打開的repo_sync
shift+I 回車 copy內(nèi)容 然后esc 然后:wq! 然后回車即可保存
之后執(zhí)行以下命令:
chmod 777 repo_sync
./repo_sync
然后就開始自動同步repo sync了
報錯信息整理:
1:curl: (6) Couldn't resolve host 'xxxx'報錯問題解決
修改或添加dns(dns服務(wù)器地址可網(wǎng)上查詢)
vi /etc/resolv.conf
nameserver 114.114.114.114
nameserver 223.5.5.5
(二)
如果依舊還是下載不了犀变,則另一種實現(xiàn)方案:
命令行使用wget下載wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar 如果報錯403 錯誤代碼表示您在該網(wǎng)頁上“未被授權(quán)”。
由于您還沒有提到有關(guān)身份驗證的任何內(nèi)容蠢正,因此我假設(shè)服務(wù)器上沒有身份驗證省店,請檢查是否有一個。
另一個問題可能是由于舊服務(wù)器上的某些過濾/防火墻“阻止”了您的請求雹舀。
如果您的請求在瀏覽器中有效并且在wget或curl上失敗粗俱,請嘗試使用用戶代理
wget --user-agent="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12" -c https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar
(三) 代碼同步更新
我們將aosp-latest.tar放到大小寫敏感的文件系統(tǒng)中,使用tar命令進行解壓
tar xf aosp-latest.tar
cd AOSP
可以獲得一個AOSP目錄娱俺,里面包含一個隱藏的.repo目錄荠卷,我們需要將鏡像站的地址更新到里面的配置文件中烛愧。打開.repo/manifest.xml,找到里面的
<remote name="aosp"
fetch="https://android.googlesource.com"
review="android-review.googlesource.com"/>
將 fetch="https://android.googlesource.com" 改成 fetch="https://aosp.tuna.tsinghua.edu.cn"
另外慎冤,打開.repo/manifests.git/config沧卢,將url = https://android.googlesource.com/platform/manifest 修改為url = https://aosp.tuna.tsinghua.edu.cn/platform/manifest但狭。
做完這些之后撬即,我們將Terminal定位到AOSP目錄呈队,輸入
repo sync
注意:使用清華鏡像的需要注意的是宪摧,因為我們有修改manifest文件,而.repo整個文件也是通過git進行管理的蕊苗,所以首次sync會提示文件沒有commit孩革,所以需要先到.repo目錄下執(zhí)行g(shù)it 的 add、commit操作。
sync操作需要一個漫長到等待過程熔掺,成功后就可以在AOSP目錄看到最新的源碼資源置逻。
使用Repo一個比較好的地方是,即使更新中途斷網(wǎng)了也沒關(guān)系券坞,因為其有記憶功能恨锚,重新輸入該命令,會跳過已經(jīng)更新的資源课舍。
詳細(xì)鏈接可參考:http://www.reibang.com/p/19aa1afeee10?utm_campaign=maleskine
(四)
問題:如果在命令行執(zhí)行 tar xf aosp-latest.tar 沒有任何反應(yīng)筝尾,可能有幾個原因?qū)е逻@種情況办桨。以下是一些可能的解決方法和排除故障步驟:
文件不存在或路徑錯誤:首先確保 aosp-latest.tar 文件位于你執(zhí)行命令的當(dāng)前工作目錄下,或者提供正確的文件路徑损姜。你可以使用 ls 命令檢查當(dāng)前目錄中是否存在該文件。
bash
Copy code
ls aosp-latest.tar
如果文件不在當(dāng)前目錄捐川,你需要提供正確的路徑或切換到包含文件的目錄。
權(quán)限問題:確保你有讀取該文件的權(quán)限古沥。你可以使用 ls -l 命令來查看文件的權(quán)限岩齿。
ls -l aosp-latest.tar
如果你沒有讀取權(quán)限苞俘,你可以使用 chmod 命令來添加適當(dāng)?shù)臋?quán)限:
chmod +r aosp-latest.tar
文件損壞:如果 aosp-latest.tar 文件已損壞或不完整,解壓縮操作可能會失敗而不顯示錯誤消息吃谣。你可以嘗試重新下載文件或從其他來源獲取它岗憋。
磁盤空間:確保你的磁盤有足夠的可用空間來解壓縮文件。使用 df -h 命令來檢查磁盤使用情況仔戈。
解壓選項:你可以嘗試添加 -v 選項來在解壓縮時顯示詳細(xì)信息监徘,以便查看解壓縮進程是否在進行中凰盔。
tar xvf aosp-latest.tar
如果上述方法仍然無法解決問題,可以提供更多詳細(xì)信息趴拧,例如錯誤消息或其他相關(guān)上下文,以便更好地診斷和解決問題脑又。