轉自:http://blog.sina.com.cn/s/blog_496be0db0102voit.html
非常坑爹,谷歌獲取chromium源碼的方式又變了!!!
從chromium39.0.2313.2之后的源碼不能通過之前那種
gclient config http://*** 的方式獲取了,因為之后的chromium的代碼剛好全部遷移到了git管理了!
可以看這里了解一下點擊打開鏈接(https://chromium.googlesource.com/chromium/src/+refs)
所以這篇文章又要改版了:D
一、概況
chromium現在分為四個大分支:
canary:最前沿的版本,每日發布,bug一堆,不適合新人。
dev:每2星期發布,比較穩定,可以體驗新功能和新特性。
beta:每周小版本更新,6周大版本更新。比dev穩定,比同期dev版小1個版本號,基本上是stable的待發版本。
stable:比同期dev小2個版本號,2到3周次版本更新一次,每6周主版本更新。這是正式的發布版本,推薦用這個來學習,特別是新人。
具體的英文介紹可以看這里:點擊打開鏈接(http://www.chromium.org/getting-involved/dev-channel)
點擊這個網址(http://dev.chromium.org/developers/calendar)可以了解最近的Chromium版本情況。
二、Master分支代碼下載(Windows)
下面簡單說說下載過程:
1、
先瀏覽器翻牆;
2、通過瀏覽器下載depot_tools.zip;
3、將depot_tools.zip解壓后,將depot_tools目錄路徑添加到系統的PATH環境變量開始處;
如
PATH=c:\depot_tools;.......
4、建立一個目錄用於下載chromium代碼,比如
D:\chromium,在此目錄中在建立一個目錄master;
D:\chromium\master就是我們將要簽出代碼的主目錄
5、打開CMD,更新剛才的depot_tools,命令如下
x:>gclient
注意:gclient后面不帶任何參數!!
此時,將會依次下載安裝python和git,其中安裝git比較奇葩。第一次運行gclient命令,下載的msysgit是
git-1.9.0.chromium.5_bin!!!!
所以成功后,你需要再次運行
x:>gclient
這時才會下載到最新的git版本
git-1.9.0.chromium.6_bin
gclient完成后,查看下版本號,看看有無錯誤提示,命令如下:
x:>gclient --version
成功后可以運行一次
gclient --version看看版本號,並注意一下有沒有錯誤提示。
6、如果之前從未使用過git,那么需要進行一下全球的git配置
x:>git config --global user.name "yourname" #yourname改為你希望的用戶名
x:>git config --global user.email "youremailaddress@gmail.com" #輸入你自己的郵箱
x:>git config --global core.autocrlf false
x:>git config --global core.filemode false
7、在CMD中,切換到剛才建立的
D:\chromium\master目錄中(這個目錄你自己隨便找個空間足夠的盤建立了,名字隨意)
然后運行
fetch chromium命令,此時源碼下載就開始了。
D:\chromium\master>fetch chromium
注意:這是在下master分支下的最新源代碼,其中最開始的3G左右是在后台下載的,我們在CMD窗口只看到不斷出現的
[0:06:10] Still working on:
[0:06:10] src
在整個源碼下載過程中,最好不要關閉CMD窗口!!!!源碼全部下載下來超過10G,所以是拼網速的時候了。
如果萬不得已希望暫停,請在CMD窗口按 Ctrl+C鍵中斷
如果異常中斷,請重新打開CMD窗口,然后執行步驟7的fetch chromium命令!不過有個例外,如果源碼已經下載完畢了(100%)的情況,但
fetch chroumium提示了失敗,
則如果要繼續下載請輸入gclient sync命令!!!!
D:\chromium\master>gclient sync
以上操作參看官方文章((抱歉,下面的url含有敏感詞,以圖代替))
構建相關參看
官方文章
三、關於翻牆的問題
由於眾所周知的原因,在執行步驟6時,很可能無法下載git和python,此時我們需要翻牆。如果你有VPN,那么在步驟1之前直接撥VPN,后面的內容就不用看了;否則,請繼續看:
首先,你必須找到一個
HTTP/HTTPS/SOCKS5代理服務器(找不到的話神仙也幫不了你了)
然后,我們為CMD設置HTTP/HTTPS/SOCKS5代理
為完成步驟2)的gclient命令,我們需要設置系統http/https代理,這里需要用到netsh winhttp里的命令(假設http代理地址是http.proxy.com:12345)
打開一個具有管理員權限的CMD(非常重要),在其中輸入
x:>netsh
netsh>winhttp
netsh winhttp>
netsh winhttp>
netsh winhttp>set proxy http.proxy.com:12345
設置完畢后,退出該CMD,再啟動一個普通CMD,運行gclient命令;
x:>gclient
這是就能順利下到python和git(
注意:是git-1.9.0.chromium.5_bin)。
在git-1.9.0.chromium.5_bin已經能下載好后,如果再想用gclient下git-1.9.0.chromium.6_bin的話,問題就來了,下載會失敗,why?
在下載git-1.9.0.chromium.6_bin的時候,起作用的是git-1.9.0.chromium.5_bin中的git!!!!!
因此,在第二次運行gclient命令前,我們要為git設置好代理。
git支持git,http/https,ssh等協議,在這里我們只需要設置最簡單的http/https協議就行了,設置方法如下
(假設代理服務器地址為: http://http.proxy.com:12345, http://https.proxy.com:23456, socks5://socks.proxy.com:34567)
先設置CMD環境變量,在CMD中輸入:
x:>set http_proxy=http://http.proxy.com:12345
x:>set https_proxy=http://https.proxy.com:23456
x:>set socks5_proxy=socks5://https.proxy.com:23456
為git設置http/https代理,在CMD中輸入:
a)使用http/https代理服務器
x:>git config --global http.proxy %http_proxy%
x:>git config --global https.proxy %https_proxy%
或者:b)使用socks5代理服務器
x:>git config --global http.proxy %socks5_proxy%
x:>git config --global https.proxy %socks5_proxy%
設置完后,用下面命令看是否成功:
x:>git config --get http.proxy
x:>git config --get https.proxy
如果顯示代理都正確,就繼續執行步驟2)里的第二次gclient命令
x:>gclient
等git-1.9.0.chromium.6_bin更新成功后,就可以繼續步驟6)和7)了
備注:
代碼同步成功后,記得回復系統設置哦
1)恢復netsh winhttp設置為直連
打開一個具有管理員權限的CMD,輸入下面命令
x:>netsh
netsh>winhttp
netsh winhttp>
netsh winhttp>reset proxy
輸入下面命令看清除是否成功,成功后顯示下面信息
netsh winhttp>show proxy
Current WinHTTP proxy settings:
Direct access (no proxy server).
關於netsh部分,請到Microsoft這個頁面詳細查看(
https://technet.microsoft.com/zh-CN/library/bb430772
)
2)清除git代理
打開一個普通的CMD,輸入下面的命令
git config --global --unset http.proxy
四、download_from_google_storage錯誤處理
如果使用http代理同步chromium代碼,在執行fetch chromium或者gclient sync的最后會提示下面的錯誤,無法生成sln文件。
Failed download_from_google_storage --no_resume --platform=win32 --no_auth
--bucket chromium-gn -s src/buildtools/linux32/gn.sha1
NOTICE: You have PROXY values set in your environment, but gsutil in
depot_tools does not (yet) obey them.
Also, --no_auth prevents the normal BOTO_CONFIG environment variable from
being used.
To use a proxy in this situation, please supply those settings in a .boto
file pointed to by the NO_AUTH_BOTO_CONFIG environment var.
解決辦法,隨便找個地方生成一個文本文件,比如 D:\boto.cfg
在該文件中輸入下面的內容(假設代理服務器是
http://http.proxy.com:12345):
[Boto]
proxy=
http://http.proxy.com
proxy_port =
12345
然后設置環境變量
set NO_AUTH_BOTO_CONFIG=D:\boto.cfg
再執行
fetch chromium或者
gclient sync