转自: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、先浏览器FQ;
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含有敏感词,以图代替))
三、关于FQ的问题
由于众所周知的原因,在执行步骤6时,很可能无法下载git和python,此时我们需要FQ。如果你有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).
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 =
然后设置环境变量
set NO_AUTH_BOTO_CONFIG=D:\boto.cfg
再执行fetch chromium或者gclient sync
- 获取Chromium代码以及编译
获取和编译Chromium必须自备梯子,最好是购买一个稳定的V*P*N,喜欢折腾的可以使用类似shadowsock的代理(需要设置google文档). 英文版教程文档可以参考这个界面,下面详细说Win ...
- 获取 Chromium 源代码以及环境配置
一.获取代码 a) 不下载代码,直接浏览,到这里:http://src.chromium.org/viewvc/chrome/ 或者这里:http://code.google.com/p/chromi ...
- 谷歌开源项目Chromium的源码获取与项目构建(Win7+vs10/vs13)
转自:http://blog.csdn.net/kuerjinjin/article/details/23563059 从12年那会儿开始获取源码和构建chromium项目都是按照那时候的官方要求用w ...
- chromium获取代码和编译
转自360公司的一位仁兄,链接地址:http://blog.gclxry.com/?p=364 之前一直是用一个chromium27的代码来研究chromium的代码.自己也调用chromium co ...
- 谷歌通过ajax获取本地JSON文件,为什么会显示跨域?转载的
在本地写了一段JSON代码,然后用ajax读取后,在浏览器打开,发现谷歌提示涉及到跨域问题, 但是跨域是由于协议,域名,端口中有一个不同,才会跨域,我在本地访问自己的文件,怎么和跨域扯上关系了?? 谷 ...
- Chromium源码系列一:Chromium简介及源代码获取和编译
Chromium源码系列一:Chromium简介及源代码获取和编译 Chromium简介 Chromium是一个由Google主导开发的网页浏览器,以BSD许可证等多重自由版权发行并开放源代码.C ...
- 谷歌通过ajax获取本地JSON文件,为什么会提示跨域?
在本地写了一段JSON代码,然后用ajax读取后,在浏览器打开,发现谷歌提示涉及到跨域问题, 但是跨域是由于协议,域名,端口中有一个不同,才会跨域,我在本地访问自己的文件,怎么和跨域扯上关系了?? 下 ...
- Google之Chromium浏览器源码学习——base公共通用库(一)
Google的优秀C++开源项目繁多,其中的Chromium浏览器项目可以说是很具有代表性的,此外还包括其第三开发开源库或是自己的优秀开源库,可以根据需要抽取自己感兴趣的部分.在研究.学习该项目前的时 ...
- 1.编译chromium
1. 前言 做了两年Chromium相关的开发,最近项目遇到瓶颈,自己有点迷茫.回顾之前做的工作,发现对chromium的认识还停留在非常表面的水平.因此,一直想对之前做的做个总结,只有总结反思才能提 ...
随机推荐
- Centos7使用yum安装程序软件时提示未找到安装包解决方法
查找程序软件源,以sshd为例,假设sshd安装包无法找到,那么可以通过以下方法解决 yum provides sshd 然后我们就可以安装*.X86_64的程序软件源 例如yum install o ...
- Load Balancing OpenSSH SFTP with HAProxy
In my previous post I described how we setup a Ubuntu Server (12.0.4) as an OpenSSH SFTP server. In ...
- lamp安装总结
1.安装准备 建一个目录用于存放各软件包的压缩文件, 如我把我的源码文件都放在了 /software目录下 切换到/software目录下,执行 wget http://dev.mysql.com ...
- 程序设计实践 (Brian W. Kernighan Rob Pike 著)
第1章 风格 1.1 名字 1.2 表达式和语句 1.3 一致性和习惯用法 1.4 函数宏 1.5 神秘的数 1.6 注释 1.7 为何如此费心 第2章 算法与数据结构 2.1 检索 2.2 排序 2 ...
- MySQL创建计算字段
数据库中数据表的格式一般不是应用程序所需要的格式,如: 在一个字段中既显示公司名有显示公司地址,但这两个数据一般不在一张表中 城市,州和邮政编码在不同的列中,但邮件标签打印程序需要把他们作为一个恰当的 ...
- 通过状态机来对axi_lite总线进行操作
通过状态机来对axi_lite总线进行操作 状态跳转: 1.初始状态 将axi_lite读写两个信道分开进行控制,在初始状态,就根据读,写信号来判断应该跳转到那一个状态. 2.写状态 在写状态中不需要 ...
- 阅读<Video Timing Controller>笔记
阅读<Video Timing Controller>笔记 1.Video Timing Controller Block Diagram 2.Example Video Timing ...
- java多线程找素数实例
package ltb20180106; public class FindPrime implements Runnable{ private int prime; private int q; p ...
- LeetCode——13. Roman to Integer
一.题目链接:https://leetcode.com/problems/roman-to-integer/ 二.题目大意: 给定一个罗马数字,返回它的整数形式. 三.题解: 这道题与12题恰好相反, ...
- Hadoop概念学习系列之谈hadoop/spark里分别是如何实现容错性?(四十二)
Hadoop使用数据复制来实现容错性(I/O高) Spark使用RDD数据存储模型来实现容错性. RDD是只读的.分区记录的集合.如果一个RDD的一个分区丢失,RDD含有如何重建这个分区的相关信息. ...