您好,登錄后才能下訂單哦!
背景:
最近攤上一個事兒,領導非要讓寫一篇技術文章,思來想去,自己接觸chrome瀏覽器時間也不短了,干脆就總結一下吧。于是乎,本文順理成章。由于有些細節必需描述清楚,所以這次先講如何拿到chromium的源碼,下次直接把編譯過程寫出來,供大家參考。
前期準備:
之前的chromium源碼都是用svn來維護,所以源碼地址網上貼的到處都是,我看了一下,svn的版本最新的也就到39,往下就沒有更新了。所以又看了chromium的官方,把源碼編譯的前期準備看了一通。簡單敘述如下:
從chromium網站看到下面幾句話,說明depot_tools和git很重要。所以先從它們入手。
1.下載depot_tools
下載地址:
https://src.chromium.org/svn/trunk/tools/depot_tools.zip
注意:不要使用拖拽和復制粘貼的方式從壓縮包中提取文件,否則”.git”隱藏文件夾下的文件不會被提取出來。“.git”文件夾是depot_tools自動更新的必要文件。你可以使用解壓工具的“解壓文件…”操作。
環境變量設置,給個圖更直觀:
管理員權限用戶:
修改PATH系統變量,在最后增加depot_tools的路徑地址,如:C:\workspace\depot_tools.
非管理員用戶:
添加PATH用戶變量:在用戶變量點擊新建,增加PATH變量名,變量值為depot_tools的路徑地址,如上圖。
2.安裝git和python
如果你已經手動安裝了msysgit和python,則跳過這一步。
從命令行到保存chromium源碼的路徑下,運行命令:gclient。第一次運行,gclient將會安裝所有和獲取源碼相關的工具,例如git,python:
Fetching fromhttps://src.chromium.org/svn/trunk/tools/third_party/svn_bin.zip
fatal: unable toaccess 'https://chromium.googlesource.com/chromium/tools/depot_tools.git/':Failed connect to chromium.googlesource.com:9217; No error
Cannot rebase:You have unstaged changes.
Please commit orstash them.
Failed to updatedepot_tools.
如果遇到上述問題,應該是你無法連接到chromium服務器,你可以使用***或者代理。
注意:
1)如果你在cygwin或者PowerShell等非命令行窗口運行gclient時,有可能能正常運行,但是msysgit,python和其他工具可能不會正確安裝。
2)在首次運行gclient時,如果看到和文件系統相關的很奇怪的錯誤,你可以去這里找答案: http://tortoisesvn.tigris.org/faq.html#cantmove2.
3)如果你在windows xp上運行,并且看到像下面的錯誤:“The system cannotexecute the specified program”, 請安裝 “Microsoft Visual C++ 2008 RedistributablePackage”.
3.git設置
Git安裝后需要一些設置
如果你從來沒有用過git,還是先百度一下git的使用方法,至少知道一些簡單的操作命令。
*在獲取代碼之前,確認git,python,depot_tools已經加入環境變量中。
4.獲取代碼
1)獲取主干代碼:到達保存chromium代碼的路徑,直接右鍵git bash,輸入$ fetch --nohooks chromium --nosvn=true開始獲取主干代碼:
這個過程比較慢,估計下載需要幾個小時時間,慢的話也許十幾個小時,所以大家最好把這一步放在晚上睡覺時進行。
2)獲取主干分支標簽(版本)信息:
切換至src目錄下:
git fetch --tags >>tags.txt 2>&1 //標簽號42.0.2311.61會保存在tags.txt文件中
git checkout -b chrome_42.0.2311.61_local_branch 42.0.2311.61
gclient sync --with_branch_heads --jobs 16
以上命令的解析大家都可以在命令的幫助里面查到。
至此,代碼已經被下載到各位的硬盤中,通過git命令就可以看到分支及標簽情況。今天先講這么多,下次會把編譯過程提供給大家。
注:拉取代碼的過程可能很長,取決于使用的***的質量;最后代碼拉取成功但是執行runhooks的時候腳本可能會失敗,至于是否影響chrome的編譯,那就只能看運氣了。
附:
chromium源碼channel:
canary channel:實驗版本,每日發布。它沒有經過充分測試,可能有某些奇怪的bug。
dev channel:每2星期發布,相對穩定,新功能和新特性都有。
beta channel:每周更新,6周大版本更新。比較穩定了,比dev版小1個版本,比stable版本早進化一個月。
stable channel:穩定版,比dev版本小2個版本,2到3周次版本更新,6周主版本更新。
第一時間獲得博客更新提醒,以及更多技術信息分享,歡迎關注個人微信公眾平臺:程序員互動聯盟(coder_online),掃一掃下方二維碼或搜索微信號coder_online即可關注,我們可以在線交流。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。