栗子現場直播 千篇一栗
有很多簡單的道理,若不是被遺忘,不是察覺不到,就是知易行難。

2010年6月19日 星期六

鏡中的機械人

  講講如何製作 Android source mirror 。寫這篇文的最大用途,是等我過了十年八載以後也能找回來。至於其他讀者的理解能力,我沒打算理會。

  我家的寬頻雖然好快,好很快,但對 Android repo server 不但不夠快,而且如果用 git protocol ,很容易斷線。以下的方法也有應付這個問題。

  設備:一台 Linux server 做 mirror ,一台 Linux client 。不要妄想用 Windows 來做,因為 Android src file 會撞大小寫。另外,mirror server 要 authorize client 的 pub key ,否則之後當 client 從 mirror server 取 src 時,系統會問你兩次 password 。

  設定 mirror server :

- 下載 repo
-- curl http://android.git.kernel.org/repo > ~/bin/repo
-- chmod a+x ~/bin/repo
- 改動 ~/bin/repo ,使它利用 http 自我更新。
-- REPO_URL='http://android.git.kernel.org/tools/repo.git'
- 做 repo init
-- cd MIRROR_PATH
-- repo init -u http://android.git.kernel.org/platform/manifest.git --mirror
- 改動 .repo/manifest.xml ,把 protocol 改至 http
-- fetch="http://android.git.kernel.org/"
- 做 repo sync
-- repo sync
- 從 client 下載 manifest.xml 修改
-- git clone USERNAME@SERVER:MIRROR_PATH/platform/manifest.git
-- cd manifest
-- git checkout -b local
-- 改 manifest.xml: fetch="USERNAME@SERVER:MIRROR_PATH/"
-- git commit -a -m "Using local mirror"
-- git push origin local

  從 client 下載 source

- 下載 repo
-- curl http://android.git.kernel.org/repo > ~/bin/repo
-- chmod a+x ~/bin/repo
- 改動 ~/bin/repo ,使它利用 http 自我更新。
-- REPO_URL='http://android.git.kernel.org/tools/repo.git'
- 下載 src
-- cd SRC_PATH
-- repo init -u USERNAME@SERVER:MIRROR_PATH/platform/manifest.git -b local
-- repo sync

  就這樣。

沒有留言: