记录我下载/同步chromium源码过程中遇到的报错及解决方案

为了编译一个chromium,弄了快一个月,直到今天总算是看到一丝丝希望了。
虽然现在还没有完全编译成功,但是一路上也遇到不少问题了。
就暂且先把已经解决掉的问题记录下来,仅供像我一样的小白学习参考。

首先你得知道你需要做什么,网上有很多讲怎么编译Chromium的文章,大致的步骤都是差不多的,不一定要严格参照某一篇,根据自身情况来选择就好了。建议就是多看几篇,CSDN 博客园 知乎 GitHub Chromium官网都可以去看看。

Chromium Android平台与编译

然后是前期的准备工作,这个也是根据个人情况而定,这里不多说明。
要注意的是前期准备里最重要的一部分就是网络环境,如果你的网络不稳定的话,那么你接下来碰到的一系列问题大概率都是网络原因导致的。本人就是因为公司网络不稳定导致下载经常出错,并且试过网上很多解决方法都不奏效,最后最后是使用libcurl4-openssl-dev替换gnutls对git进行编译解决了问题。所以,如果你的情况跟我一样,特别是下载失败后报错解密失败之类的,请试试这个方法。

参考链接:
报错:gnutls_handshake() failed: Decryption has failed.
git报错 failed: The TLS connection was non-properly terminated

接下来就按照步骤一步一步来就好了,下面是我遇到的一些问题:

# 如果是下载源码请用 'fetch android --nohooks [--no-history]'
# 出现下载不成功多半是网络问题,只能重试到成功为止咯
zsm@ubuntu:~/vivaldi-source$ gclient sync --nohooks --no-history

________ running 'git -c core.deltaBaseCacheLimit=2g clone --no-checkout --progress https://chromium.googlesource.com/chromium/src.git --depth=1 /home/zsm/vivaldi-source/_gclient_src_0boehkur' in '/home/zsm/vivaldi-source'
Cloning into '/home/zsm/vivaldi-source/_gclient_src_0boehkur'...
remote: Counting objects: 342704, done
remote: Finding sources: 100% (342704/342704)
error: RPC failed; curl 56 OpenSSL SSL_read: error:1408F119:SSL routines:ssl3_get_record:decryption failed or bad record mac, errno 0
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
1>WARNING: subprocess '"git" "-c" "core.deltaBaseCacheLimit=2g" "clone" "--no-checkout" "--progress" "https://chromium.googlesource.com/chromium/src.git" "--depth=1" "/home/zsm/vivaldi-source/_gclient_src_0boehkur"' in /home/zsm/vivaldi-source failed; will retry after a short nap...

________ running 'git -c core.deltaBaseCacheLimit=2g clone --no-checkout --progress https://chromium.googlesource.com/chromium/src.git --depth=1 /home/zsm/vivaldi-source/_gclient_src_0boehkur' in '/home/zsm/vivaldi-source' attempt 2 / 4
Cloning into '/home/zsm/vivaldi-source/_gclient_src_0boehkur'...
remote: Counting objects: 342704, done
remote: Finding sources: 100% (342704/342704)
error: RPC failed; curl 56 OpenSSL SSL_read: error:1408F119:SSL routines:ssl3_get_record:decryption failed or bad record mac, errno 0
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
1>WARNING: subprocess '"git" "-c" "core.deltaBaseCacheLimit=2g" "clone" "--no-checkout" "--progress" "https://chromium.googlesource.com/chromium/src.git" "--depth=1" "/home/zsm/vivaldi-source/_gclient_src_0boehkur"' in /home/zsm/vivaldi-source failed; will retry after a short nap...

________ running 'git -c core.deltaBaseCacheLimit=2g clone --no-checkout --progress https://chromium.googlesource.com/chromium/src.git --depth=1 /home/zsm/vivaldi-source/_gclient_src_0boehkur' in '/home/zsm/vivaldi-source' attempt 3 / 4
Cloning into '/home/zsm/vivaldi-source/_gclient_src_0boehkur'...
fatal: unable to access 'https://chromium.googlesource.com/chromium/src.git/': OpenSSL SSL_read: error:1408F119:SSL routines:ssl3_get_record:decryption failed or bad record mac, errno 0
1>WARNING: subprocess '"git" "-c" "core.deltaBaseCacheLimit=2g" "clone" "--no-checkout" "--progress" "https://chromium.googlesource.com/chromium/src.git" "--depth=1" "/home/zsm/vivaldi-source/_gclient_src_0boehkur"' in /home/zsm/vivaldi-source failed; will retry after a short nap...

________ running 'git -c core.deltaBaseCacheLimit=2g clone --no-checkout --progress https://chromium.googlesource.com/chromium/src.git --depth=1 /home/zsm/vivaldi-source/_gclient_src_0boehkur' in '/home/zsm/vivaldi-source' attempt 4 / 4
Cloning into '/home/zsm/vivaldi-source/_gclient_src_0boehkur'...
remote: Counting objects: 342704, done
remote: Finding sources: 100% (342704/342704)
remote: Total 342704 (delta 76098), reused 224376 (delta 76098)
Receiving objects: 100% (342704/342704), 1.08 GiB | 2.81 MiB/s, done.
Resolving deltas: 100% (76098/76098), done.

Syncing projects: 100% (397/397), done.                                         

________ running 'cipd ensure -log-level error -root /home/zsm/vivaldi-source -ensure-file /tmp/tmp9wmcrr1a.ensure' in '.'
[P76426 19:14:44.681 client.go:439 E] Response body limit 181 exceeded.           {"host":"chrome-infra-packages.appspot.com", "method":"ResolveVersion", "service":"cipd.Repository"}
[P76426 19:14:58.841 client.go:439 E] Response body limit 197 exceeded.           {"host":"chrome-infra-packages.appspot.com", "method":"ResolveVersion", "service":"cipd.Repository"}
[P76426 19:14:58.841 client.go:439 E] Response body limit 186 exceeded.           {"host":"chrome-infra-packages.appspot.com", "method":"ResolveVersion", "service":"cipd.Repository"}
[P76426 19:14:58.842 client.go:439 E] Response body limit 182 exceeded.           {"host":"chrome-infra-packages.appspot.com", "method":"ResolveVersion", "service":"cipd.Repository"}
Errors:
  failed to resolve chromium/third_party/android_deps/libs/androidx_legacy_legacy_support_v4@version:1.0.0-cr0 (line 127): prpc: response too big
  failed to resolve chromium/third_party/android_deps/libs/androidx_lifecycle_lifecycle_livedata@version:2.0.0-cr0 (line 136): prpc: response too big
  failed to resolve chromium/third_party/android_deps/libs/androidx_vectordrawable_vectordrawable_animated@version:1.1.0-cr0 (line 235): prpc: response too big
  failed to resolve chromium/third_party/android_deps/libs/com_android_support_preference_v7@version:28.0.0-cr0 (line 322): prpc: response too big
Error: Command 'cipd ensure -log-level error -root /home/zsm/vivaldi-source -ensure-file /tmp/tmp9wmcrr1a.ensure' returned non-zero exit status 1

解决方法

export DEPOT_TOOLS_UPDATE=0

执行完后继续 gclient sync --nohooks --no-history
又遇到如下问题

Syncing projects:  99% (356/357) src/third_party/perfetto                       
src/third_party/requests/src (ERROR)
----------------------------------------
[0:00:40] Started.
[0:00:40] Finished running: git config remote.origin.url
[0:00:40] Finished running: git rev-list -n 1 HEAD
[0:00:40] Finished running: git rev-parse --abbrev-ref=strict HEAD
----------------------------------------
Error: Command 'git remote update' returned non-zero exit status 1 in /home/zsm/vivaldi-source/src/third_party/requests/src
Fetching origin

fatal: unable to access 'https://chromium.googlesource.com/external/github.com/kennethreitz/requests.git/': error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version
error: Could not fetch origin

查了一下是协议版本不支持,换成tlsv1.2就好了
(注意:使用这个方法需要上文提到的为git配置openssl)
具体解决方法参考这篇文章:Git 遇到 GnuTLS handshake error 解法

之后再同步一下,终于完成。

zsm@ubuntu:~/vivaldi-source$ gclient sync --nohooks --no-history
342>Syncing projects:  90% (359/397)                                            
Syncing projects: 100% (397/397), done.

然后继续按照步骤来,就没什么问题了,如果遇到网络抽风导致中断,那就再重试。

这样看下来,好像也没有什么问题,有也多半是网络问题,所以网络稳定真的真的很重要。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下载Chromium源码,你可以按照以下步骤进行操作: 1. 首先,你需要下载depot_tools,这是一个用于管理Chromium源码的工具集。你可以在官方网址http://www.chromium.org/developers/how-tos/build-instructions-windows 下载depot_tools。 2. 下载完成后,将depot_tools添加到系统的环境变量,以便在任何位置都可以使用它。 3. 接下来,你需要创建一个自定义的源码目录,并使用命令行工具进入该目录。 4. 在源码目录,执行命令"gclient config http://src.chromium.org/svn/releases/31.0.1620.2"来配置Chromium的版本。你可以根据需要下载不同的版本,可以在http://src.chromium.org/viewvc/chrome/releases/ 查看可用的版本。 5. 如果你不需要下载LayoutTest测试文件,可以打开以版本名称命名的目录下的DEPS文件,并将"src/third_party/WebKit/LayoutTests"修改为None。 6. 第一次执行"gclient sync"命令时,会自动安装git、python等必要的工具。请耐心等待安装完成。 7. 在安装过程,可能会出现连接错误。如果出现连接错误,你可以尝试将以下内容复制到C:\Windows\System32\drivers\etc\hosts文件,以解决连接问题。 8. 安装完成后,你可以执行"gclient sync"命令来获取Chromium源码。如果下载过程出现问题,可以重复执行"gclient sync"命令。 9. 下载完成后,进入源码目录,并执行"gn gen out/Default"命令来生成编译规则到out/Default目录。 这样,你就成功下载Chromium源码。希望对你有帮助!\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [下载Chromium源码方法及问题记录](https://blog.csdn.net/hezhipin610039/article/details/31372619)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Chrome源码chromium下载编译详细步骤](https://blog.csdn.net/langeldep/article/details/120032077)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值