2013年12月5日 星期四

AOSP repo init with 403 error (proxy problem)

以下解決方法適合在公司(有proxy)的情況

Reference:

操作過程整理如下,先想好你要把repo放在哪裡,我是放在AOSP資料夾底下
以便和公司用的區分開來,如果你沒有這個問題
直接把抓下來的repo 放到 /bin 底下
這樣到處都可以直接使用 repo 指令,
不需要每個專案都複制製一個repo檔案 也就不用在 repo 前面加 ./ 了

1.      $ mkdir AOSP
2.      $ cd AOSP
4.      $ chmod a+x repo

在公司(亦即有proxy) 請加入 step56,沒有請跳過
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

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 一直中斷的現象,給各位參考。

沒有留言:

張貼留言