以下解決方法適合在公司(有proxy)的情況
Reference:
操作過程整理如下,先想好你要把repo放在哪裡,我是放在AOSP資料夾底下
以便和公司用的區分開來,如果你沒有這個問題
直接把抓下來的repo 放到 /bin 底下
這樣到處都可以直接使用 repo 指令,
不需要每個專案都複制製一個repo檔案 也就不用在 repo 前面加 ./ 了
1. $ mkdir AOSP
2. $ cd AOSP
3. $ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo
> repo
4. $ chmod a+x repo
在公司(亦即有proxy) 請加入 step5、6,沒有請跳過
5. $ export http_proxy=<proxy_ip>:<port>
6. $ export https_proxy=<proxy_ip>:<port>
Ex:
$ export http_proxy=10.11.123.234:2345
$ export https_proxy=10.11.123.234:2345
7. $ ./repo init -u https://android.googlesource.com/platform/manifest
8. $ ./repo sync
如果 repo sync 過程中經常出現 request fail / fetch errors
Solution (1)先查一下 googlesource.com 跟 android.googlesource.com 的 ip
$ nslookup googlesource.com
$ nslookup android.googlesource.com
(如果兩個ip一樣,或很像,建議多查幾次確定一下,我查到第四次發覺會變 =_=)
假設查到的分別是 74.125.31.82 and 173.194.74.82
$ sudo vim /etc/hosts
加入下面這兩行
74.125.31.82 googlesource.com
173.194.74.82 android.googlesource.com
ps.
1. 如果兩個ip一樣,或是很像,建議多查幾次確定一下,因為小蒨有遇到查到第四次會改變
2. 不同台電腦,或是換了位置上網(ex: 從家裡到公司),
亦或是隔了一天要重新執行時發覺老毛病又犯了,也可以再check一下
Solution (2) Setting TCP/IP stack
$ sudo sysctl -w net.ipv4.tcp_window_scaling=0
上面這兩個方法有幫助小蒨改善 repo sync 一直中斷的現象,給各位參考。
Solution (1)先查一下 googlesource.com 跟 android.googlesource.com 的 ip
$ nslookup googlesource.com
$ nslookup android.googlesource.com
(如果兩個ip一樣,或很像,建議多查幾次確定一下,我查到第四次發覺會變 =_=)
假設查到的分別是 74.125.31.82 and 173.194.74.82
$ sudo vim /etc/hosts
加入下面這兩行
74.125.31.82 googlesource.com
173.194.74.82 android.googlesource.com
ps.
1. 如果兩個ip一樣,或是很像,建議多查幾次確定一下,因為小蒨有遇到查到第四次會改變
2. 不同台電腦,或是換了位置上網(ex: 從家裡到公司),
亦或是隔了一天要重新執行時發覺老毛病又犯了,也可以再check一下
Solution (2) Setting TCP/IP stack
$ sudo sysctl -w net.ipv4.tcp_window_scaling=0
上面這兩個方法有幫助小蒨改善 repo sync 一直中斷的現象,給各位參考。
沒有留言:
張貼留言