本篇为 linux下搭建编译chromium的方法
windows篇:windows下搭建编译chromium的开发环境_二七-CSDN博客
mac篇:mac下搭建编译chromium的开发环境_二七-CSDN博客
系统环境:Ubuntu x64 14.04 (ubuntu-14.04.5-desktop-amd64.iso)
参考文档:https://chromium.googlesource.com/chromium/src/+/master/docs/linux_build_instructions.md
虚拟机环境:Vmware 14
*注:搭建chromium开发环境,使用普通账号(非root),如果普通用户遇到权限问题,使用sudo提权
第一步,安装iso.
系统下载路径:
https://yunpan.360.cn/surl_ymvmTipx8Pf (提取码:07bb)
首次安装乌班图系统后登陆root,需要输入命令:
命令:sudo passwd
设置密码。
命令框启动方法: CTRL+ALT+T
第二步,配置python2.7.6
配置zlib:
// *注:安装zlib,是保证执行ninja时,避免遇到Python丢失zlib的问题,错误如下:ImportError: No module named zlib
zlib版本:
zlib-1.2.11.tar.gz
下载路径:
http://www.zlib.net/
or https://yunpan.360.cn/surl_ymvV5f4m7HL (提取码:049d)
命令:
tar -xzvf zlib-1.2.7.tar.gz
cd zlib-1.2.7
./configure
make
sudo make install
下载python2.7.6:
命令:wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz
解压python2.7.6:
命令:xz -d Python-2.7.6.tar.xz
命令:tar xvf Python-2.7.6.tar
生成makefile编译文件:
命令:cd Python-2.7.6
configure命令:
./configure --with-zlib
编译:
命令:make
安装:
命令 make install
第三步,配置git
下载安装git
命令:sudo apt-get install git
此处可能会报错:
Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
执行:
sudo rm /var/lib/apt/lists/lock
或者
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
重启,再次执行安装git即可。
git version: 1.9.1
配置git相关信息
git config --global user.name "test"
git config --global user.email test@email.cn
git config --list // 可查看
第四步,Install depot_tools
下载depot_tools
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
配置环境变量:
把depot_tools 拷贝至 /path/to/depot_tools
打开 ~/.bashrc // .bashrc文件再root下
最后添加:export PATH="$PATH:/path/to/depot_tools"
可以使用 gedit xxx来打开文件
设置代理:
export http_proxy=192.168.x.x:10808
export https_proxy=192.168.x.x:10808
git config --global http.proxy http://127.0.0.1:8080
git config --global https.proxy https://127.0.0.1:8080
git config --global http.sslverify false
第五步,下载代码
下载代码:
fetch --nohooks chromium
Run hooks
// 如果下载异常,可以从其他地方拷贝代码
执行 gclient runhooks
注:gclient runhooks由于代理问题,会反复出现下载失败问题,此处如果是下载失败类问题,则继续执行 gclient runhooks即可
注:checkout 到 release tag,再次 sync 的时候,需要附加 --with_branch_heads 参数。否则可能会遇到以下错误:
src/third_party/webrtc (ERROR)
----------------------------------------
[0:00:13] Started.
[0:00:25] _____ src/third_party/webrtc : Attempting rebase onto 4ab51cb6d7d4530b344e63ed8274d1454b7a5f39...
[0:00:26]
[0:00:26] Rebase produced error output:
fatal: Needed a single revision
Does not point to a valid commit: 4ab51cb6d7d4530b344e63ed8274d1454b7a5f39
此处可能遇到问题:
CIPD selfupdate failed. Trying to bootstrap the CIPD client from scratch...
处理方法:export DEPOT_TOOLS_UPDATE=0
此处可能遇到问题
error:1408F10B:SSL routines:ssl3_get_record:wrong version number
Error: Command 'cipd ensure -log-level error -root /home/tyler/work/360browser -ensure-file /tmp/tmpABHCaJ.ensure' returned non-zero exit status 35
处理方法:执行gclient runhooks
此处可能遇到问题:
gn.py: Could not find gn executable at: /media/data/Projects/OpenSource/chromium/src/buildtools/linux64/gn
处理方法:执行gclient runhooks,如果不行,拷贝自己浏览器仓库的buildtools到此处
此处可能遇到的问题:
No module named gyp
处理方法:git clone https://chromium.googlesource.com/external/gyp
cd gyp
sudo ./setup.py install
此处可能遇到的问题:
You have PROXYvalues set in your environment, but gsutil in depot_tools does not (yet) obeythem.
处理方法:新建文件 proxy_webrtc.boto
内容:
[Boto]
proxy = example-host
proxy_port = port number
执行:
export NO_AUTH_BOTO_CONFIG=/path/to/proxy_webrtc.boto
此处可能遇到的问题:
Running hooks: 12% ( 8/64) binutils
手动拼接下载后,拷贝到该目录
eg:https://storage.googleapis.com/chromium-binutils/0cb5726d9701f8be6a81b199899de1de552922f2
配置依赖库
// 注:本步骤Ubuntu系统必须执行,出现任何失败情况,请解决失败原因后,继续执行,直到成功后继续执行下一步
// --no-chromeos-fonts 由于远程下载依赖包并安装时会出现找不到chrome os字体,导致报错,预先添加该参数
命令:
sudo build/install-build-deps.sh --no-chromeos-fonts
此处可能遇到弹框:
Configuring ttf-mscorefonts-installer为标题的安装微软字体的确认框
你需要做的通过鼠标点击对话框的任何一个地方确保终端是焦点,接下来按<Tab> 键选中”<OK>”按钮,回车。
接下来又给你呈现出一个新的窗口,选择“<YES>” 再按回车。
此处可能会报错:
E: Unable to locate package lib32ncurses5-dev
E: Unable to locate package lib32z1-dev
检查ubuntu版本,ubuntu-14.04.5-desktop-amd64.iso
同步代码:(北京时间晚上6点50下载,遇到过惊喜,speed 5M/s)
// gclient sync
// 由于其他原因,不同步谷歌代码,采用其他代码
此处可能遇到的错误:
Unknown SSL protocol error in connection to chrome-infra-packages.appspot.com:443
重新设置代理
此处可能遇到的错误:
Running depot tools as root is sad.
需要使用普通用户进行操作。如果用普通用又没有权限的话,可以把路径的所有者从root改为普通用户
sudo chown your_user_name: your_folder_name -R
// gclient sync 执行成功后,放可执行后续操作
执行gn生成ninja文件:
// 根据需求选择下列参数进行编译
// gn gen out/debug
gn gen out/release --args='is_debug=false is_official_build=true symbol_level=2 enable_nacl=false enable_linux_installer=true use_jumbo_build=true'
gn gen out/debug --args='enable_nacl=false remove_webcore_debug_symbols=true use_jumbo_build=true'
// enable_linux_installer=true 按需删加
编译
ninja -k 100 -C out/debug chrome
此处可能遇到的错误:
编译error,由于代码中使用windows的函数,修正后继续编译即可。
第六步,大功告成-20181026