使用代理同步Chromium代码的心得

2023-11-09

非常坑爹,谷歌获取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含有敏感词,以图代替))
       使用代理同步Chromium代码的心得(V2.0)

      构建相关参看 官方文章
三、关于翻墙的问题
      由于众所周知的原因,在执行步骤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
附录:
1、netsh
使用 set proxy 命令配置代理设置。您可以在键入此命令时加上一个问号,来查看此命令的语法。
netsh winhttp>set proxy /?
本示例指定 HTTP 服务器和 HTTPS 服务器都要通过代理服务器 proxy_server 进行访问,但由“”参数指定的主机名不包含句点的服务器除外。
netsh winhttp>set proxy proxy_server ""
本示例通过使用 import proxy 命令导入 Internet Explorer 使用的代理信息。
netsh winhttp>import proxy source=ie
本示例使用 reset proxy 命令将 WinHTTP 代理重置为 DIRECT。
netsh winhttp>reset proxy
即使您未运行代理服务器,我们也建议您使用 Netsh.exe 检查以前是否设置过代理。本示例通过在不带任何参数的情形下运行该工具来显示当前配置。
netsh winhttp>show proxy
实例:
1. netsh winhttp set proxy 127.0.0.1
2. netsh winhttp set proxy 127.0.0.1:8080
2. netsh winhttp set proxy 127.0.0.1:8080 
4. netsh winhttp set proxy proxy-server="http=myproxy:80;https=myproxy:80" bypass-list="*.abc.com"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用代理同步Chromium代码的心得 的相关文章

  • 如何在 git 中删除 subversion 远程?

    我有一个最初使用 git svn 创建的 git 存储库 现在我有一个推送到的 git 服务器 但 svn 存储库已丢失 我可以删除 svn 远程吗 如何 您可以编辑 git config文件并删除与要删除的遥控器关联的部分 您要删除的行可
  • Git:当文件位于嵌套 git 存储库中时强制“添加”

    我想添加一个包含在父存储库中的嵌套 git 存储库中的文件 我正在开发一个在我的项目中使用的库 然而git add nested repo myfile不做任何事情 我可以尝试重命名 git文件在进行提交时 但是当我重命名回时 我担心会出现
  • 克隆包含所有子模块的 git 存储库

    我有一个工作 git 存储库 其中包含几个子模块 通过克隆不同的存储库获得 现在 我想要复制整个存储库 包含所有子模块 通过使用推送或克隆到另一台机器上的裸 git 存储库 我很高兴失去子模块的历史记录 我只是对保留它们的内容感兴趣 这可能
  • Git 子模块在 Windows 上更新缓慢

    Git 子模块在 Windows 上似乎非常慢 为了测试性能 我创建了 3 个裸存储库并向它们提交了 3 条独立消息 未存储文件 然后 我将每个裸存储库作为子模块添加到新的 git 存储库中 并执行子模块更新 花费了 5 秒多的时间 当使用
  • git push origin 分支名总是推送到 master

    我搜索了一下 但似乎找不到答案 在我可以访问的两个盒子上 当我执行 git push dry run origin mytestbranch 时 我得到以下结果 To email protected cdn cgi l email prot
  • emacs 临时文件的 .gitignore 正则表达式

    我正在尝试 gitignore emacs 临时 自动保存文件 我在用着 在我的 gitignore 中 But git add A在子文件夹中运行仍然给我 new file make collections py new file nor
  • Git ref master 现在为空,如何恢复?

    我不完全确定发生了什么 但由于某种原因 我的 git 存储库的主引用文件现在是空的 我们在 Dropbox 上托管存储库 所以也许与此有关 但现在我无法从中提取 它是这么说的 Your configuration specifies to
  • 由于合并而不允许 git revert 但未给出 -m 选项

    我正在尝试使用 revert 命令恢复到 git 中的某个 哈希 号 我正在使用以下命令 git revert c14609d74eec3ccebafc73fa875ec58445471765 但是 我得到以下返回 错误 提交 c14609
  • 从分离的头进行 Git 推送

    我以超然的态度做出了一些改变 我想用 Git 将这些更改推送到这个独立的头 我不希望我的更改进入开发分支 当然也不想进入主分支 我正在与另一个人一起处理一个文件 分支示例 develop master HEAD detached at or
  • 命令来确定当前 HEAD 的上游引用?

    我正在寻找我所希望的简单的一行命令确定当前签出分支的正确上游引用 本质上就像是 git branch remote HEAD 如果有效 会将符号模式 HEAD 转换为当前分支名称 然后选项 remote然后将其更改为远程跟踪分支的引用 但它
  • 克隆存储库而不将其设为原始远程存储库

    我正在从一台将被擦除的计算机上克隆一个 git 存储库 是否可以在不创建原始存储库的情况下克隆存储库origin master 或者我是否需要克隆它 然后删除远程分支 这是通过git remote rm origin Edit 存储库只有一
  • Git:如何使外部存储库和嵌入式存储库作为通用/独立存储库工作?

    我有一个大项目 比方说A repo 其中有一个子文件夹来自B repo 当我提交时 我会遇到如下警告A repo warning adding embedded git repository extractor annotator serv
  • 在 git repo 中查找超过 x MB 且 HEAD 中不存在的文件

    我有一个 Git 存储库 用于存储随机的内容 主要是随机脚本 文本文件 我设计的网站等 随着时间的推移 我删除了一些大型二进制文件 通常为 1 5MB 这些文件会增加存储库的大小 而我在修订历史记录中不需要这些文件 基本上我希望能够做到 m
  • 如何使用 .gitattributes 避免在 git root 中包含文件夹,但在 zip 的 dist 文件夹中包含同名文件夹

    我有一个名为lib在存储库的根目录和另一个名为lib在 dist 文件夹中 我正在尝试使用 gitattributes文件排除除 dist 之外的所有文件夹和文件 以便任何下载为 zip 或 tarball 的人都只会 git 分发文件 我
  • 相当于“svn update -r”的 git 是什么?

    我是最近的 git 转换者 能够使用 git svn 将我的分支保留在本地而不干扰 svn 服务器真是太棒了 最新版本的代码中存在一个错误 我想确定一个它起作用的时间 以便我可以使用 git bisect 我找不到正确的命令来及时返回 谢谢
  • 运行“git apply”时出错

    当我尝试时 您能否告诉我如何解决 补丁不适用 错误 git 应用补丁 git apply 0001 my patch error patch failed test xml 114 error text xml patch does not
  • Git:如何变基到特定提交?

    我想变基到特定的提交 而不是另一个分支的 HEAD A B C master D topic to A B C master D topic 代替 A B C master D topic 我怎样才能做到这一点 您可以通过在您喜欢的提交上创
  • git diff 在尖括号中显示 unicode 符号

    我有一个带有 unicode 符号 俄语文本 的文件 当我修复一些拼写错误时 我使用git diff color words 看看我所做的改变 如果是 unicode 西里尔文 符号 尖括号会造成一些混乱 如下所示 cat p1 cat p
  • SSH 到 Openshift 服务器失败

    我正在 openshift 服务器上使用 jboss catridge 我希望与其他人共享此实例并添加其他用户的公钥 id rsa pub 当其他人尝试访问该实例时 他会收到以下错误 我在他的实例中尝试了同样的方法 但看到了同样的错误 与
  • 分支明显不同,但提交历史是相同的

    git status告诉我我的分支和我在另一个存储库上开始的分支已经分歧 On branch master Your branch and origin master have diverged and have 13 and 13 dif

随机推荐

  • elementUi使用自定义表格时给表头自定义成el-input导致el-input失效的问题

    我们在使用elementUi的表格组件时往往需要自定义表格 很多还需要自定义表头 比如这种 我们再表格的头部插入el input组件 这时就会发现 你在表头的el input输入时不显示 解决方法就是给slot header 换成 head
  • 2023华为OD机试真题-对称字符串(JAVA、Python、C++)

    题目描述 对称就是最大的美学 现有一道关于对称字符串的美学 已知 第 1 个字符串 R 第 2 个字符串 BR 第 3 个字符串 RBBR 第 4 个字符串 BRRBRBBR 第 5 个字符串 RBBRBRRBBRRBRBBR 相信你已经发
  • Java中多线程,java栈和堆面试题

    public static void main String args 创建自定义线程对象 myThread mT new myThread 开启新线程 让新的线程执行程序 jvm调用线程中的run mT start 在main方法中执行
  • mediapipe face_mesh测试

    目录 onnx测试 tensorflow预测tflite代码 onnx测试 img path r D data val result 1212 test 1 2 02370 1 jpg img path r D data face 1212
  • Python的下载和安装教程

    今天学习python以及pycharm的下载和安装 参考了好几个博客 在此总结一下安装过程 注意 在这里说明一下 如果要用pycharm进行python的开发 是要分别下载pycharm和python的 不要只安装pycharm就结束了 一
  • 命令提示符的使用及运行Java程序

    常用的命令提示符 dir 列出当前目录下的文件以及文件夹 director md 创建目录 make director rd 删除目录 cd 进入指定目录 cd 退回到上一级目录 cd 退回到根目录 del 删除文件 del txt可以将所
  • c++11std::thread扩展

    最近 整理一下学习c 的文章 看到一篇文章 其中提到了thread local和std future 觉得这两东西很有趣 于是网上搜了一些资料 觉得很有帮助 希望可以对大家学习c 线程有所帮助 http www cnblogs com ha
  • 嵌入式设备文件系统构建——增加用户登录功能

    1 修改inittab文件 first run the system script file sysinit etc init d rcS 进入命令行 askfirst bin sh 添加执行登录验证 sysinit bin login c
  • 【毕设教程】随机森林算法

    文章目录 0 前言 1 什么是随机森林 2 随机森林构造流程 3 随机森林的优缺点 3 1 优点 3 2 缺点 3 3 随机森林算法实现 4 最后 0 前言 Hi 大家好 这里是丹成学长的毕设系列文章 对毕设有任何疑问都可以问学长哦 这两年
  • Firebug调试经验与技巧

    昨天网站出问题了1 为了调试cookie 特别找了关于firebug里面如何调试cookie的文章 觉得这篇不错 保留下来备份 Firebug调试经验与技巧 2009 03 13 15 22 16 转自 http blog sina com
  • redis,mysql,elasticsearch,hbase,hive对比区别,该如何选择

    几种数据库对比如下 redis mysql elasticsearch hbase hive 容量 容量扩展 低 中 大 海量 海量 查询时效性 极高 中等 较高 较高 低 查询灵活性 较差 非常好 较好 较差 非常好 写入速度 极快 中等
  • U3D通过按钮点击实现场景切换

    1 新建UI 选择button选项 新建button 2 file gt Build settings gt Add Open Scenes 把你当前场景添加进去 gt 把你想要切换的场景拖拽上去 3 新建一个空对象 挂载一个scenech
  • org.apache.http.ConnectionClosedException Premature end of Content-Length delimited message body

    最近生产环境报了这个系统异常 org apache http ConnectionClosedException Premature end of Content Length delimited message body expected
  • CANOE入门:DBC创建和编辑

    目录 dbc文件创建步骤 创建一个DBC数据库文件 创建网络节点Network nodes 创建Message 创建信号Signal 创建Signals用到的数值表Value Tables 将Value Tables关联到Signals 将
  • I/O error on GET request for "http://user-service/hi": user-service; nested exception is java.net.Un

    一 场景重现 最近闲暇时间打算系统学习下SpringCloud系统教程 毕竟最近微服务也挺火的 于是网上找了一个大牛的博客跟着一起学习 史上最简单的SpringCloud教程 一直跟着模仿构建SpringCloud一直也没出什么问题 直到在
  • Pgsql与Oracle语法差异(SQL迁移记录)

    oracle 数据库中没有limit关键字 LIMIT 1 替换为 rownum 1 select from table where rownum 1 输出1条 oracle 自增序列使用 sequence PGSQL 自增序列可用 ser
  • jquery笔记回顾

    jquery 1 jquery概念 js框架封装的原生的js代码 2 jquery版本区别及使用 jquery xxx js 有排版 体积大 jquery xxx min js 无排版 体积小 3 jquery与原生js对象进行互转 jqu
  • hk-bc.xyz forum.php,www.xavdz.com

    Domain Name XAVDZ COM Registry Domain ID 1838157110 DOMAIN COM VRSN Registrar WHOIS Server whois enom com Registrar URL
  • Kafka面试题

    Kafka核心总控制器Controller是什么 在Kafka集群中会有一个或者多个broker 其中有一个broker会被选举为控制器 Kafka Controller 它负责管理整个集群中所有分区和副本的状态 Controller选举机
  • 使用代理同步Chromium代码的心得

    先参看 http www chromium org developers how tos build instructions windows 非常坑爹 谷歌获取chromium源码的方式又变了 从chromium39 0 2313 2之后