一直以来想自行编译一下Chrome,最近重新开始玩开发板(和树莓派类似),装上了Debian 7.4(Wheezy),发现Chrome只有33.0版,(到目前2015.12.08为止,Chrome stable版本号为47),于是趁此机会折腾了一番。Google了一番,然后发现了这个
查看本机libc6版本,确定是2.13且upgrade无果,于是自行强行安装了新版本的libc6:
kill桌面环境
sudo /etc/init.d/slim stop
添加源
将
deb http://ftp.debian.org/debian sid main
添加到
/etc/apt/sources.list
更新软件源
sudo apt-get update
安装新版libc6
sudo apt-get -t sid install libc6-amd64 libc6-dev libc6-dbg
由于开发板是ARM架构,我们需要在x86平台下编译出Chromium的ARM版程序
一、建立工作目录
$ mkdir -pv ~/chromium
$ cd ~/chromium
二、下载depot_tools工具包
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
执行结束之后会在当前目录下产生一个目录depot_tools,里面是许多之后会用到的小工具。
三、把depot_tools加入PATH下
$ export PATH=$PATH:~/chromium/depot_tools
四、下载最新的Chromium代码
$ fetch --nohooks chromium
代码总共大约8GB,校园网IPv6抓取速度几乎满速(10MB/s)
完成后将看到src目录
五、准备编译环境
$ cd src && ./build/install-build-deps.sh
$ sudo apt-get install gcc-arm-linux-gnueabihf
$ sudo apt-get install g++-4.8-multilib-arm-linux-gnueabihf
$ ./build/install-build-deps.sh --arm
$ gclient sync
$ export GYP_CROSSCOMPILE=1
$ export GYP_DEFINES="target_arch=arm arm_float_abi=hard component=shared_library linux_use_gold_flags=1"
$ gclient runhooks
六、开始编译
带sandbox的Release版:
$ ninja -C out/Release chrome chrome_sandbox
不带sandbox的Release版:
$ ninja -C out/Release chrome
Debug版:
$ ninja -C out/Debug chrome
经过漫长的等待(六线程全100%占用,超频至3.2Ghz,两小时左右)
所有编译出來的东西都放在out/Release或out/Debug下。
$ ./chrome
会发现一个错误”Running without the SUID sandbox!”,按照给出的链接解决即可
或者直接
$ ./chrome --no-sandbox
运行后可以看到一个Warning:『google api keys are missing some functionality of chromium will be disabled』,作为一个码农,我选择了无视它
然后。。。。
发现无法登陆Google账户,Google了一下Warning发现『Since Chromium version 35, Debian does not provided API keys anymore. 』
为了能正常使(同)用(步),只好自己申请API keys
一、 加入Group(必须) [email protected]
二、前往 https://cloud.google.com/console
三、Create Project(随意取个名字,比如MyChromiumProject)
四、前往API Manager页面,启用Chrome相关的API,参考:
五、前往Credentials页面,在OAuth consent screen处填写Product Name然后保存
六、在Credentials页面添加一个API key,选择Browser key,Referers留空即可
七、再添加一个OAuth 2.0 client ID,type选Other即可
八、到此,已经有了API key,client ID 和 client secret
$ export GOOGLE_API_KEY="your_api_key"
$ export GOOGLE_DEFAULT_CLIENT_ID="your_client_id"
$ export GOOGLE_DEFAULT_CLIENT_SECRET="your_client_secret"
再启动Chrome
$ ./chrome
即可正常登陆Google账号并同步了